[Moq] Re: Request Synchronization Use Case

Gwendal Simon <gsimon@synamedia.com> Tue, 09 June 2026 10:44 UTC

Return-Path: <gsimon@synamedia.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 353AFFDF74A4 for <moq@mail2.ietf.org>; Tue, 9 Jun 2026 03:44:51 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1781001891; bh=HTfTwIdNslxDJmT78GkprU2Se8pGvvm7I3CXZdLfNOc=; h=From:To:CC:Subject:Date:References:In-Reply-To; b=RZ6ZJd9eqKgfZCECOzKZp2pDdAL2C1hncTqrjM5rUOA4lWU1ngyCy+KbIOinRhxQT ZIVxqAKTwcgBPasAvF2Cssu9hxh8fKHfaYf+fVHZL72x05Hy+YaIf3i9ReC9BbBFc9 uSqDy2lnnieKxoINZV7kZ+9qNCr0EIUYlGQwCX6A=
X-Virus-Scanned: amavisd-new at ietf.org
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_H2=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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=synamedia.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 jTrhph8bOA_l for <moq@mail2.ietf.org>; Tue, 9 Jun 2026 03:44:50 -0700 (PDT)
Received: from LO2P265CU024.outbound.protection.outlook.com (mail-uksouthazon11011071.outbound.protection.outlook.com [52.101.95.71]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-384) server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 1614CFDF7490 for <moq@ietf.org>; Tue, 9 Jun 2026 03:44:49 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RLf5pw8Mc0KgNXJ2w7y0tQEQDI2bTwujDq14Hq7+htzVrhOm/m6eyAIDO+P0VGce5Q0Hj4bBhuqvq7+Ek8dtq8MGkvGKzFRx8nlYWLiSh76Nvnn9YAJmBaQEtBKk74E6SQjzMne0MRYwlTT/yxoRifYjken/l6jr5Hh9GBn9bS8g/J0p7ncEFV8uKOVwkt+YspEd7L0zpiE7FWfP6JE6j7dcfR+1R/DWAg0fKiy0s9ZAXj85ZQyrlI8hg00UWSJU7R0hKkHDnmG1CzHMRLGUYl40UiwKBhljf8CvPEUutWZRtceTAnyJOkjQ7ELdzzwW9LHYy7q5F17gM+1n2WLrWA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=HTfTwIdNslxDJmT78GkprU2Se8pGvvm7I3CXZdLfNOc=; b=stMZhA5V9X0uwVC4NlGVAEvBocXgVCtLT6s2v76jYeNb6iSZyAFDCLAWEI+Oi181LYYmg03SHzmZTkYG/Zbbg0K0Vubnz+Q4CgPC51BfMDavW7EhUnHhHJAtHpcug8qGYl3qWh56N0mUGW0ayddMuLfUw2YH/kCgyIAEDoE6tWAY3mhccQWUGg4NjcBtK2lfvrSFhbnZ7nGdiMGIfGMrpgAUAt6tcj8daU30JSwuVIoDEbXsDQRbu1l+1TpIC0KJFHv3q9fC7x8OC00r5VVUL2C1gHOjBIBDaWdlMfDmGYeAl99xktNhnTHEjPL6lBjb0fZBpo4ev2wIHGoRI9Yu6Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=synamedia.com; dmarc=pass action=none header.from=synamedia.com; dkim=pass header.d=synamedia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=synamedia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=HTfTwIdNslxDJmT78GkprU2Se8pGvvm7I3CXZdLfNOc=; b=gv78YL1CfIcf719TmQ62w1B2BHFLCAnoBhZnP4mn+Nf3WLP72fBW8rUM4/6trss/EupoX9Xmb56dJXf6lh14UY7v5MoatzOp4eosE9cUi6MHNTitn9XTWsaycmux91LL9O1GIzunnpj9bpj6ZOJbnho9O87jRIWX4G+irbGyd8T4B3sILl6UKs3PnMnjKmFsUj30xOnxGHrUbotOk8vpwd0UoTKf807okNeeA4hk1Abgqnsu45Gy8PIaeoGncvI3EG1Udm8DQx8U6iU/VVdiURBig7qQTxh+GeNvphH7cYzOcqy3eBqGo/gDzsSI5/4XyVSHR93MB9iZQI6SlZEisw==
Received: from LO2P265MB3881.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:1c4::14) by CWLP265MB3218.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:bd::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.14; Tue, 9 Jun 2026 10:44:39 +0000
Received: from LO2P265MB3881.GBRP265.PROD.OUTLOOK.COM ([fe80::58d:ac5d:b176:3a66]) by LO2P265MB3881.GBRP265.PROD.OUTLOOK.COM ([fe80::58d:ac5d:b176:3a66%4]) with mapi id 15.21.0092.011; Tue, 9 Jun 2026 10:44:39 +0000
From: Gwendal Simon <gsimon@synamedia.com>
To: Alan Frindell <afrind@meta.com>, Cullen Fluffy Jennings <fluffy@iii.ca>
Thread-Topic: [Moq] Request Synchronization Use Case
Thread-Index: AQHc2bd4LraN8tbc5UCFZQ1riESD+bYtVh8AgATpLoCAA/YAAIAADw33
Date: Tue, 09 Jun 2026 10:44:38 +0000
Message-ID: <LO2P265MB38818E2FE2F7E4AEC2E99494C51D2@LO2P265MB3881.GBRP265.PROD.OUTLOOK.COM>
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>
In-Reply-To: <CANPAELvb0_CxaR8CBxfXu0W9smV8J12Kf5JPj+iUt+eHFXZKHA@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=synamedia.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: LO2P265MB3881:EE_|CWLP265MB3218:EE_
x-ms-office365-filtering-correlation-id: f842b040-3f52-47c6-9453-08dec6141b27
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|10070799003|366016|38070700021|56012099006|11063799006|4143699003|3023799007|6133799003|18002099003|22082099003|8096899003;
x-microsoft-antispam-message-info: dk7u0XLU9OXM2I76CoP77Zt+G+vFhGjNf/IxG3XSkr4K2BobgeYwJqL8nYEPSixDLs9paa7Ye+DYKLK/ZsC9GfaeojpZ7tico6UcK5d4/RDxfnMMrNYDx+GisOaciqeF8Q6DqCCHqj6Dyk2+0JMw693AG40svbOf52bLIvQtuKEnNQiuBjmMj1GgYNC7BmmMV6101tL0CqS4PvYBb6PDQt210uI3JAQvdVPJyfl2YYnYfAw6kifczuZg4Ce05GbCYjO0nuwQaTq3PgsM98gh2zJ3NxDb583eTQ+xCFC5j1hpZEnOybKwVs6a6cgdy81mcnVx3GJZjaPX1tWMzHzxV2tuDkawZz4gGCPQF3sOubFEz5NaSJ86TOno7tj+9Y3yAsyM3bOUzaGA+8sAdnKsSv9qSzdLLrLzWAQVsCxThjiMhPBA4+Z8w9cUX+aCqt/mkEbuz/KGHYfHIzqYf8yNNVZP8V6T7uP76nXS3buDMjpNeXoxWhvlkCycDBPzWk9aOeccGEjtDUMmHb4SSWK3kG7G+4rVOX0bjSeWeMjw/k+xX0sj8mJLS6/cGCYT4twKUv+1EtkaCjDqnCGf5gdb2/99/i4ULiv90pZhensjGxdLP14xtV0rjtcrIcdCU9D10LZ0xjt1G2m7p+BHz9o8tGeuRpj91XdHAyA354l7c1lUlG2URN/FEKEPLwmwFQXWVNAYzY/0E6IdUFo7uJhDQFyXz8sgvBOdLpzJ9YAQWXXkASkgJvHp9pRcF8h5K1pd
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LO2P265MB3881.GBRP265.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(10070799003)(366016)(38070700021)(56012099006)(11063799006)(4143699003)(3023799007)(6133799003)(18002099003)(22082099003)(8096899003);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 0L6dLZGUW1fZkNo8rA7fOzbEQrRmhpB98xaNZULW34yYWjGTkS35SCnpLBXTFrh/HQPUOj2xFszziah1dYyBhQWcZdOBqeQ0Aa3cLiyQJ7kYsB6W3tHROT9/02inyEAeyyjoxJLCPmQy9M8Mzh7Yz30aVj3aP8AL9m+9oUEOcNGGbP4bE8fN0Deo8XtRaYPjHoUx5MPbzXcX80K+MX1FzyOf8OOE2dAWHRVlogXqPve0mAM0KdNmuuotuNyNlLEQXJyhvbfUmyLEG9UTaBM+KXXfGzgAEHeMUaa8Vo85+Qp+9i/RHJheBl01lxCCpVcUzkWaC0PVlZ6FpgSSIurQltumYYe8q1nRgOQyvTi5c3K7XYAkD5jKfMSS5QjSj998hVRna6tY7e6F28EI8gTqf500/CqDWrUTLhkM47hjXf9orUmg+3a2kHNNqdSU21yCTRMFzsfsFqiUiqW2ThmJnMDTs8kazU3uuvxWqPcdyr4W0i7iESGc/O4z4XG51xajNJsf3NP8CeUkoTnRrg4DE6jWw9msR28IPwoiagAaOJkcDQXk3rlT/ZyfCYoUA6kQ+n10KYQXRmv3k0erNLkXS/LMZlxNzpSrrwOMzCUfbEdQTy06ubIX3Z48QdAPaYPUjHL1zU+t3oGCdVCf5E3YFp17wXf5P0tBaieMVoY67uY3wFdH7QV1asKmKPkV8GGK3Kk6/xK69PDEArH9FTDExgjcAYkeUWiXUgoNczFC4TSER3fk+ksQMYKNFrFy2gbUG0hBaXgqFprBVvwCr1olxyYnEG3T11zfsqiyuFtN5tu6KM8c2o4PRVx4fRuwi+2A4HC2J2YnUK+/XkrUEverSrbWvhfG9Tq/ilWu5ChwJqXLLyIBZ+8TmULpO32WSk6KgJfLSzdQx44kWI0pCtPjGBYOd3uGZwRwj7jAbz+U6WT29CMcrTH+2iyDcegKKvwJIV3A74whFGN+ocuclpzAJJQ0lVmQySe/pmfjdqEluj7ul9hYnWtmdd/witAsv7Ae7UOgGfl/Sgwb1L9iae8C3/GE6qbMf6jqSS8I0fU1FH+9+bJDPXLvtcGzl63CI/BAUMJVJ++kGrLGpHyvovORRsX2m9IC0GV+wf5lFJ93a30iDgb/mJi0ZWt/1YLMiqPoU76HjDlq1YzLrpow9go6XHFn5xvqPwoWzxni3Ful49sn9AUh/LUisuQXFvSP9izWEuukn159KT9lAmRv3jka9xf1RD+0mARyuU+Yp2VtG8BD8TGjI8ycoWrrlZhuuoMImRGt2DSxzqpl+snq3cZMAa+z9ODmC84rOp/GzBGF7uB+xBn+DezquIGrBDLW4Jm645A9lOQY0FsxqX3LplbkrTKX2t2UhV36fVYGoPQM6n8WSYDl7o1e6duf4CglsJTALB8hvWyrLfojhwZ8fH11JptbxvCTTI5vQQ9F2j8lXuQnLO1UwZlfCgFLATF46W7KKOnBEKAVtaS5HgIwx7FPbo1peIHBWFc0AX09/BnZgdjowZeJyvOdRRaPs9vx0aEOc4c4mLO4zDgwas7tA00nOGaD0govJY85UwAarjTaEY5s1BYIfdMeYES7NFL9jU0TWpCQYhJIM/EiUL3PcvAqc6wOqCbVc7DFznswOZpGwlW2f6gWeP/kypp/z7YYor3vFTMcWEN2yhs5kHxEAH5ChVK65NzcWKD3EFe9noQ530oB6ymbLdmDam8zeNwQF/BrCMPwBUBc68wKTRvoHtpq1G1od1bJ6Zw0LPiuZx+XbRng5idrVlnrqp9Sm1MPFKU6
Content-Type: multipart/alternative; boundary="_000_LO2P265MB38818E2FE2F7E4AEC2E99494C51D2LO2P265MB3881GBRP_"
MIME-Version: 1.0
X-OriginatorOrg: synamedia.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: LO2P265MB3881.GBRP265.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-Network-Message-Id: f842b040-3f52-47c6-9453-08dec6141b27
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Jun 2026 10:44:38.9606 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: ecdd899a-33be-4c33-91e4-1f1144fc2f56
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: k2lr+EdffZsCLkm6hwIQPp3JXjmP79QWj+RDYXwI0qMFMSbTHKZK0EIyfh7QQw8QUqAjkvPIOU+OvbpUePLwlg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CWLP265MB3218
Message-ID-Hash: MSMLOX2JI6GLJCEWPFCA4U75TB5AT2I4
X-Message-ID-Hash: MSMLOX2JI6GLJCEWPFCA4U75TB5AT2I4
X-MailFrom: gsimon@synamedia.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: 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/FX8ZWaP7rW83ATjQBZwKfSDeA7M>
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>

Thanks Alan,

I'm happy with this direction. SWITCH_FROM param on top of #1642 covers the large majority of the use cases. And it does not introduce zombies fwd=0 subscriptions.

Indeed, I still see a few corner cases, mainly where the relay has to source the resume content upstream. Relay with no cache and/or a bounded/high-RTT upstream link. Not a blocker for me. I am OK to let it go.

Note that this PR depends entirely on #1642, so it makes the #1642 discussion in London considerably more significant.

Looking forward to Thursday.
Gwendal
________________________________
From: Alan Frindell <afrind@meta.com>
Sent: Tuesday, June 9, 2026 11:43 AM
To: Cullen Fluffy Jennings <fluffy@iii.ca>
Cc: Gwendal Simon <gsimon@synamedia.com>; MOQ Mailing List <moq@ietf.org>
Subject: Re: [Moq] Request Synchronization Use Case

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<mailto:fluffy@iii.ca>> wrote:




> On Jun 3, 2026, at 12:14 PM, Alan Frindell <afrind@meta.com<mailto: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