[Moq] Re: Request Synchronization Use Case

Alan Frindell <afrind@meta.com> Wed, 10 June 2026 06:32 UTC

Return-Path: <prvs=462108f322=afrind@meta.com>
X-Original-To: moq@mail2.ietf.org
Delivered-To: moq@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 5243FFE7C0F3 for <moq@mail2.ietf.org>; Tue, 9 Jun 2026 23:32:13 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1781073133; bh=8IvmOyfSstgzPDchac5G/TrOrFaXyAtTs1qX5ozgddA=; h=References:In-Reply-To:From:Date:Subject:To:Cc; b=Jr9/3tH5NpCq9Wm7XOGzufEcqPYUm3tmi9clMEMnX3YhgCTLFUxQ7JW1p2uEgtjio bgYhsoSaxzC3yspW1sgzpQFB+FmBA4AyE0w/eoRdu77VJyZ+v0OuSDkwLGkSk54Fbc xrlGCaBTxYF5nYKg6ZpdHVUBpbQpGouro7nZiC20=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.792
X-Spam-Level:
X-Spam-Status: No, score=-2.792 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_FONT_LOW_CONTRAST=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=meta.com
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id veLoaP6bJ984 for <moq@mail2.ietf.org>; Tue, 9 Jun 2026 23:32:12 -0700 (PDT)
Received: from mx0a-00082601.pphosted.com (mx0b-00082601.pphosted.com [67.231.153.30]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id E2318FE7BFD4 for <moq@ietf.org>; Tue, 9 Jun 2026 23:32:07 -0700 (PDT)
Received: from pps.filterd (m0001303.ppops.net [127.0.0.1]) by m0001303.ppops.net (8.18.1.11/8.18.1.11) with ESMTP id 659GTTxZ1836186 for <moq@ietf.org>; Tue, 9 Jun 2026 23:32:00 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=meta.com; h=cc :content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to; s=s2048-2025-q2; bh=25EK1TEvNufot3l8RF9i bAV3kUbukGYvW6kpHDwj9/o=; b=JtbQ6iCGQnbMuZq9Nq6MLITHnjZUcISm+4ip kwppo8qULt3Aqv4IAl9wE6c8bRlSiHtxM0dX8AVVPHC6i3PPOTH21b1r6RLdrbuQ HbHff2Fbo2V1Vno2cgwttdTcuYbO7ml27Mus6QfDwRLn22n9jRH/VWt8rz3vnS3l 5CNBkIAZVspxMcMX28M8QXoIsaw0XlUwQFWWFx5pFnupvxoIxunaV33Q7dW1hkHq YiGgLax9oXvRWu2nQqO5ccQJ/OmEPC2WYZe1eSvJCNNl//QJ+jzR9tnlgcZO/NBN l/MUB4Yg00SY99jwRXsmDOi9jMzMj+pdKU7Z+JtM2bS3sUea+w==
Received: from mail-yw1-f200.google.com (mail-yw1-f200.google.com [209.85.128.200]) by m0001303.ppops.net (PPS) with ESMTPS id 4eppd54njy-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for <moq@ietf.org>; Tue, 09 Jun 2026 23:32:00 -0700 (PDT)
Received: by mail-yw1-f200.google.com with SMTP id 00721157ae682-7ef69fe0050so70067477b3.2 for <moq@ietf.org>; Tue, 09 Jun 2026 23:32:00 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1781073120; cv=none; d=google.com; s=arc-20240605; b=K5Y6OJjnyJeN2bW5e3cA4d/uF8GRrQaziAaDh0rdVmzRZsuwyKgD9wp9PKleYn2xWB dxVcUhYiX3gMPKBHvTHmbUP2+3EKswB53Nt3Z8Q9LvAiO09lN+4H7cD7cgmVrEOiy5XW vtFJ6yN6o33/VLcPDT8l74oikors9hb60tuPVgJtosZkS4L3D5+wG2+pcNzmVvhn59fB dVQC+NQ5WNkEyms4s+fhyQa/CACGYt9drT6MUAAhGPk7znnhYnH9CMcwRfkR/HXGdVwa qYVQNn4Z2jqiH40fHKjlQcI6uKwcEDiXzpdcllXTvkpVilTBeFT92GJkztJZvrZ1//Y8 HpOg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version; bh=eASTtwgahBhnMxgoyMJVfmYBqmwyYYw3keqsxRat64M=; fh=dRmNsuaIyJux8og7lJstEbVjNIskbG6SOzCiJcRTeHY=; b=jzkxjNNAcpcgdNt+yD9l+AOj0NnmpNahWPwLO2MTI4wIdrC9TrdsqLL8tHnjchsPum b7T5+2VqstV827yHMcjLKTQakUFTohhAKDs0X/Op18RUUTb+ezCu0G4IytDBdPs3U1ZA YXsajgo8yObbagPg8AXBrmRonHdnqxIu5CJCvPW6uB4GNOsGpIa6z89kOoPHeE19sM1w 5M4cWy1vZyBFc4Pup8b480AH+3Nyc9XkFlfgxudT1j3SiOquxMg8V1VD0WiH5JS/sSs8 qfcVoMZcmN67WpQ3bOVvI11UJWTF0xwdGQeY6GhJe5sRGgCtT+fMxOgPIRLHQCqUjTmI ZGsA==; darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781073120; x=1781677920; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=eASTtwgahBhnMxgoyMJVfmYBqmwyYYw3keqsxRat64M=; b=Syqs5GyzSDNSTi/t31foPbQWiutrq2lVqc0Z7yIP/AmMp3W/pgq+hWwkiwwB6sG6mm ssA8ghKjxV87sq8R4HIpzR57bzrp3wqXVxpJX3B7Q6H7GF7XctYFQSGutxACCDN0bfLU FmKK25HNtBH+2JipWPaBxsNYYF3NrZopxe+NiVCS7VkmG31y9uYCf0FP7WoHwxknrzX2 u7WPwix1yJJY1ChG5QlU5I24RoiFszGXy8w2/yk1QqmZ1YrRbfuGGj0ADO2ZkuPOw4tr 4UhHxBmTXcCQsBVrVlTMSkf0ESU9rOFJSgBzzgQPHiDaOP8JdCkV6s6VmCVo876dWON1 s31w==
X-Forwarded-Encrypted: i=1; AFNElJ8YOoQmsrA2bHQLgzZnfM6ZsfSscjXnrwbxD59kZ/cMfxYgpvmog5GY6l9Q9nf3qn3A128=@ietf.org
X-Gm-Message-State: AOJu0YxWpr/3iqqSE3ZxIuKMiYBhDMmy9gQl5f0KzAPuqk8Dc/uEol0x VG3qKltStvJULQrXNa6IWJQ6nRfa5XE/KsgFFoHMBUn2Xvcm6Gb7/wb8a5wHEkgdW223jxWyKKq ZswPbFMIfj+vDnwRNDK2Yfvt4c4Rm+bQslpbx7Sqw28Mh7xE4ysTaf+m3P724Fy+zJuVqd0dZBR iM+YRi1j7Y9gB6WEB7ig==
X-Gm-Gg: Acq92OGvyCapNdtPZRPfGLTpuAZmSkZoe7Bj2M8fb5o+9I0+t2AfROHr1ZnPz4BLYCX 3twf3DIfXPWJrizqorPIzimVWVZrSf2yy5EwPgme1HtOZUFhBAZ9xdjSJylXBEy+WaMZcXPry5S L1sjM1E2xZ9BF2290L7d5LOiv+MG4s8vZOIY0cHp/rLoJQEV4jLaOFizuj1Aa/dK1/QVRVljF1B eQWuRm0JcVF/nAnRozAtpvB7vAOwtXbmvSu8edSurBw/AieVw==
X-Received: by 2002:a05:690c:6d07:b0:7dd:b286:dfdc with SMTP id 00721157ae682-7ed0b680e78mr234368627b3.11.1781073120169; Tue, 09 Jun 2026 23:32:00 -0700 (PDT)
X-Received: by 2002:a05:690c:6d07:b0:7dd:b286:dfdc with SMTP id 00721157ae682-7ed0b680e78mr234368347b3.11.1781073119677; Tue, 09 Jun 2026 23:31:59 -0700 (PDT)
MIME-Version: 1.0
References: <E4E2EA18-6FA9-48C6-82DB-6F6D59F9F22E@iii.ca> <CANPAELvxW+=e7cnGNXa=FcKF6c=JiBih81-+ENNeq-KiHA_CLQ@mail.gmail.com> <BAC94DD2-1FDB-4696-BB80-8AD8968C17F8@iii.ca> <CANPAELvb0_CxaR8CBxfXu0W9smV8J12Kf5JPj+iUt+eHFXZKHA@mail.gmail.com> <CAA4Mczs7Bt2sPZNB51Ne2iSsAJHtpgz1a_b5BhnZ578D9fDV_g@mail.gmail.com>
In-Reply-To: <CAA4Mczs7Bt2sPZNB51Ne2iSsAJHtpgz1a_b5BhnZ578D9fDV_g@mail.gmail.com>
From: Alan Frindell <afrind@meta.com>
Date: Tue, 09 Jun 2026 23:31:48 -0700
X-Gm-Features: AVVi8CfVWDzJyl8pJzCz4UQ1YQ840_AWuf41FqzyvKFBhNgcn-4TwchmxtlSWE4
Message-ID: <CANPAELsK3JfP7+Sd0Bu9smi9J=V5Pbe8bccEh-a+m4=M4v0-RQ@mail.gmail.com>
To: "Ali C. Begen" <ali.begen=40networked.media@dmarc.ietf.org>
Content-Type: multipart/alternative; boundary="0000000000009e1a800653e066ba"
X-Proofpoint-ORIG-GUID: QtGBXr-qF3Xt1L6VXmDVJ4pcIBHbbXSU
X-Authority-Analysis: v=2.4 cv=FNYrAeos c=1 sm=1 tr=0 ts=6a2904e0 cx=c_pps a=NMvoxGxYzVyQPkMeJjVPKg==:117 a=FelO9ux0wxsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=7x6HtfJdh03M6CCDgxCd:22 a=_78whYxrdx1mplLwxq1U:22 a=48vgC7mUAAAA:8 a=NEAV23lmAAAA:8 a=Nv--wQFjAAAA:8 a=VabnemYjAAAA:8 a=8408NKfJrNIuqzLUnBAA:9 a=QEXdDO2ut3YA:10 a=2LJPtq7UWMw5I9XnvVcA:9 a=2q4O/K3rjNU7EHYdBHB6dYyilSc=:19 a=0eI-wCiuvy32dFz2:21 a=lqcHg5cX4UMA:10 a=NZEjkz1c1RZEYMvUJ3LL:22 a=gKebqoRLp9LExxC7YDUY:22
X-Proofpoint-GUID: QtGBXr-qF3Xt1L6VXmDVJ4pcIBHbbXSU
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjEwMDA1OSBTYWx0ZWRfX/V57z4SZNYpY sdv82e22biEWCGU7JmfcMCOQrPl9nzGzEwKsjWaiQkIX4XlwWJahlcfnC2JqQjWUpJp0HRk5f78 avPpmKQlub/Lch8sXOnaXSCVW13OF3oPlq5TFTziLvdOSbXzKl3JQBMCQVdw4JcZGYDUd4jNvgM +6JaiAo4nvm4eGQKxHgIEvZKztzYejXcTqMD4ko/8hoVaikaSyU9AV5ViSL8rzAMGUN3f1dMBA0 MKkKiYjpbcVuLYg+qa/de2LJ526lrb6O/DzAjRg80LON9CMYFTT0/j4h8xasoZ3z0GxM2lQoS1n gyLmtLOwHwGdl1w8RiK9WuJ4nh1FVtrp2tvRhfil4R7MmLrEHLlTX4S6UeTayXO+zAzfzNrH4gP MjaAY2ncGZkjTtpr9b4ZDikqQrSZb/7xLGbbYSAKjQfYtE1GZtJoC7pVAPFCtEEHuUjFXV0GnwF knfbo+Ju1V3DgKpX9Jg==
X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-10_01,2026-06-09_02,2025-10-01_01
Message-ID-Hash: APAMT2LCYP2L2TNSC5MJRM5QBDZP2CDM
X-Message-ID-Hash: APAMT2LCYP2L2TNSC5MJRM5QBDZP2CDM
X-MailFrom: prvs=462108f322=afrind@meta.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: Cullen Fluffy Jennings <fluffy@iii.ca>, Gwendal Simon <gsimon@synamedia.com>, MOQ Mailing List <moq@ietf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [Moq] Re: Request Synchronization Use Case
List-Id: Media over QUIC <moq.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/moq/bdnX8GUFMv0SmxoHVXRTTIEaofQ>
List-Archive: <https://mailarchive.ietf.org/arch/browse/moq>
List-Help: <mailto:moq-request@ietf.org?subject=help>
List-Owner: <mailto:moq-owner@ietf.org>
List-Post: <mailto:moq@ietf.org>
List-Subscribe: <mailto:moq-join@ietf.org>
List-Unsubscribe: <mailto:moq-leave@ietf.org>

The slides I uploaded yesterday cover the use cases discussed here, the
range of options as I see them, and the new SWITCH_FROM proposal:

https://datatracker.ietf.org/meeting/interim-2026-moq-08/materials/slides-interim-2026-moq-08-sessa-request-ordering-switch-from-00

This is for the Request Blocking topic tomorrow at 12:30 local time.

Thanks

-Alan

On Tue, Jun 9, 2026 at 3:20 PM Ali C. Begen <ali.begen=
40networked.media@dmarc.ietf.org> wrote:

> Thanks, Alan. This PR #18 (and #1642) looks good to me. It does pretty
> much everything I wanted from the original SWITCH PR and is closer to our
> current implementation in MOQtail. I hope to show some live ABR demos
> (subscriber-side and relay
> 
> Thanks, Alan. This PR #18 (and #1642) looks good to me. It does pretty
> much everything I wanted from the original SWITCH PR and is closer to our
> current implementation in MOQtail.
>
> I hope to show some live ABR demos (subscriber-side and relay side) on Thu.
>
> -acbegen
>
> On Tue, Jun 9, 2026 at 11:43 AM Alan Frindell <afrind=
> 40meta.com@dmarc.ietf.org> wrote:
>
>> Thanks for the detail Cullen.
>>
>> > is there a possible unification with a slightly simpler SWITCH
>>
>> I drafted a PR <https://github.com/afrind/moq-transport/pull/18>
>> (currently in my repo) for a new "SWITCH_FROM" *parameter* that can be
>> included in SUBSCRIBE and REQUEST_UPDATE.  This PR builds on #1642
>> fill-fetch streams, and offers a subset of SWITCH functionality from #1378,
>> while also adapting to the unrelated track scenario.  The essential bits
>> are:
>>
>> SWITCH_FROM {
>>   Switch From Request ID (vi64),
>>   Mode (1),  // Hard or Soft
>>   Publish Done (1),
>>   Reserved (6),
>> }
>>
>> The publisher determines the Start Group of the resume subscription as
>> normal
>> 1. Set Forward=1 and Apply the Subscription Filter (this ensures new
>> objects in future groups aren't missed)
>> 2. Continue delivery on the suspend subscription until there’s an object
>> to publish in the resume's Start Group
>> 3. Make the Switch
>>   Mode = Hard --> Set Forward=0 on the suspend subscription
>>   Mode = Soft --> Set End Group = Start Group - 1 on the suspend
>> subscription
>> Cancel delivery of any Groups >= Start Group
>> Send PUBLISH_DONE if requested
>> 4. Send SUBSCRIBE/REQUEST_OK
>>
>> Having spent time writing this PR, I have a much deeper appreciation for
>> the work Gwendal and co have been doing.  There are many cases to consider,
>> and I don't think I've worked through them all exhaustively.  There is room
>> to expand the functionality.  Thanks Zafer and Gwendal for some early
>> reviews and feedback.
>>
>> I plan to cover this in more detail during Thursday's discussion on
>> Request Ordering - I'm open to feedback or a different direction entirely.
>>
>> Thanks
>>
>> -Alan
>>
>>
>> On Sat, Jun 6, 2026 at 10:13 PM Cullen Fluffy Jennings <fluffy@iii.ca>
>> wrote:
>>
>>>
>>>
>>>
>>>
>>> > On Jun 3, 2026, at 12:14 PM, Alan Frindell <afrind@meta.com> wrote:
>>> >
>>> > Circling back to the use cases here -- I copied them into issue #1519
>>> last month and there has been some discussion there, but I'd like
>>> additional input ahead of next week in case folks have missed it.
>>> >
>>> > > 3) a stream being paused and unpaused in rapid succession and
>>> requests reorders on the wire resulting in the opposite of the desired
>>> state.
>>> >
>>> > Since REQUEST_UPDATEs are serialized on the subscription stream, I
>>> believe this use case is already met.  Please correct me if I'm missing
>>> something?
>>>
>>> Agree
>>>
>>> >
>>> > > 1) Swap tracks. In a video conference, a subscriber is subscribe to
>>> track for Alice and Bob’s video and is watching Alice with Bob paused, but
>>> wants to pause Alice and unpause the track with Bob. It’s pretty common to
>>> want to ensure to pause the current one before unpausing the new track to
>>> not have congestion.
>>> >
>>> > I just want to clarify -- is this scoped to a single pair of tracks or
>>> many pairs (eg Alice's Audio + Video and Bob's Audio + Video), or something
>>> that's not even pairwise (Swap Alice's Video for Bob *and* Cindy's)?
>>>
>>> Both cases happen but when switching from Alice to Bob & Cindy, if you
>>> switch to Bob then put in a separate subscribe update to change Cindy
>>> forward to true, it does result with Cindy delayed an bit but this all gets
>>> masked a bit as the windows change size. I think we could live with having
>>> a bit of delay in that case.
>>>
>>> I’m mostly concerned with the Alice to Bob case.
>>>
>>>
>>> >
>>> > > 2) client side ABR
>>> >
>>> > Ian added some questions in the issue, but i think it reduces to
>>> essentially the same problem as above, except it's Alice's low-quality for
>>> Alice's high-quality video.
>>>
>>> Agree this is same as Alice to Bob case above.
>>>
>>> >
>>> > I guess the direction I'm heading in -- is there a possible
>>> unification with a slightly simpler SWITCH.  If we reduce SWITCH to only
>>> swapping the forward state on two tracks with existing subscriptions (no
>>> more SWITCH->PUBLISH), and make "min group" an option, would this meet all
>>> our ordering requirements?  This presumes some way to effect a join, which
>>> #1642 offers.
>>> >
>>>
>>> I’ll send a review of the PR - I agree something in that direction could
>>> work -  thanks.
>>>
>>> > Thanks
>>> >
>>> > -Alan
>>>
>>> --
>> Moq mailing list -- moq@ietf.org
>> To unsubscribe send an email to moq-leave@ietf.org
>>
>