[Moq] Re: Knowing the start of a Subgroup
Suhas Nandakumar <suhasietf@gmail.com> Thu, 30 April 2026 17:12 UTC
Return-Path: <suhasietf@gmail.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 F180FE6CB025 for <moq@mail2.ietf.org>; Thu, 30 Apr 2026 10:12:43 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1777569163; bh=OR3TL3SUkOipYItIbGV992Z+2+3elk3HpZKOXeQRFVw=; h=References:In-Reply-To:From:Date:Subject:To:Cc; b=lFrUs+9ESNqDmuCuzzLtb5cSm0g8N4TY2WD/T0gjdDoX4ZEDtfLXmQvutKPAZ+b/t AVB1BZRdbGMZaTa0ZZYmvwSb8k6Dt2pOXn42yr0N2CagJWLmSybQ9JY8cNF5/s0LdR VqcD7TJLPBtdMFmgDjsgqDhpIWQWeb+vNXKHbKEY=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level:
X-Spam-Status: No, score=-2.097 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, FREEMAIL_FROM=0.001, HTML_FONT_LOW_CONTRAST=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 D7tgy1vtDw4v for <moq@mail2.ietf.org>; Thu, 30 Apr 2026 10:12:43 -0700 (PDT)
Received: from mail-yw1-x112d.google.com (mail-yw1-x112d.google.com [IPv6:2607:f8b0:4864:20::112d]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 3F1E7E6CB010 for <moq@ietf.org>; Thu, 30 Apr 2026 10:12:43 -0700 (PDT)
Received: by mail-yw1-x112d.google.com with SMTP id 00721157ae682-79ea87af213so35990097b3.0 for <moq@ietf.org>; Thu, 30 Apr 2026 10:12:43 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1777569163; cv=none; d=google.com; s=arc-20240605; b=Pkf+MEaLVqbKz9Ay878gKpx6G7kPKTWgmfYngBwr6T7Yyt5D5LS2d22OYRNcvURvkB 8Lg0vAn30Wqcg9kjFSMfj+ih4XSXz6D1Tg27bZeXSPKl8HzFRfCSIH+tuQLcoZBDivqH Y1t+u72c7h6b/TgaFdbvGzsVJrufLhzwmXu1tZV41s+jAUzhkWGbX093zaKgBWZWn8/w b+nmc4iyiJcVOHP+XaXYG52X7FdYqo0Ixf9UqBCViMeXbhiiLl+OPixGqJNifokOTUQJ Ycxei8/3Ual5+/m+/Om+NngWNjXLO+5lYtLh6RE6+vCZqSA2X/TLUCZ2gock/ErHbs/2 KUOg==
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:dkim-signature; bh=TmI2xQi+AtP43lUrZA9eq4grIuloFmsDdxQ5vee/BcE=; fh=Wj3Dxy0p/O+dVYNtdLRm1vKtU0oCMzjDArJUehIZ+6c=; b=DxaXD/Vuud0vnx5hWLIMSeBtdKLKVpUk/O5SrJCLKjdw/OkbhRG6SJM6URDlhDFPYj ja2xzunxLXS9WFXpSfGqqSq/BPVeUoHpJ3Vhzq0eyc3NSs2nK7FVftEQVy6JpTnxBmYD HybqnU8qArpJuvWI3Uyl3cpIJ5FcE5EHbcCZ/vq5OPsgnzdbOxjii2JuTM0NqjgzTww0 9lLNowem4dOHwitVq05jK1hsulIw4HzKPjsSrZqctDUFr/qHlYltjUvUOCoGIQuTMpeX FD8yvth6mdnQJz9d6/7kz6KHruxkDWOluvT8uKiFgiJDaIJh+7UBz9PIwMsah8q39aM+ 8DFw==; darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777569163; x=1778173963; 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=TmI2xQi+AtP43lUrZA9eq4grIuloFmsDdxQ5vee/BcE=; b=OxYorm6Pf83Qk8syhdpNvSRrxeLVVMsnmh4NSsZeogFPdEtI0FV1EjimGVKbV9WPLR +OTrZcMSQe8QkHTXv8vayhKgnLc9M71Mp6y8eReoHriqlWb2FsRbgDAYLNjU9PK7x4kY 9IAMi/H1PqBMfe5bTUYnSZGjY4TMav/vvli2aUKLogqkD6qrl024vYykd0Vr3SdbbqIv 4+sbrI/Xv64PjQdZBiPSwPyUg0l0FTo7EngmFIISSB1AT6q8x5gKzyvLDnnGCbCMNa6o xYXhFkGNbPQgFIj/a+MujJE5VSnRcYucVXXpueTh+nJdQtQxtKxyDtGM/mw/Naf8ik8R zKdQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777569163; x=1778173963; 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=TmI2xQi+AtP43lUrZA9eq4grIuloFmsDdxQ5vee/BcE=; b=nHADe3QcZTLVMVDklBEIiMmspqt4vakrm40D1u4xrTquQ7oN+ZcDzb/0jKph37061X 92uj4D0jKxLn5AmZPO1Ta/GBRM5PHZpSfF6e2F+dItSYeIvq/POnrrET1RdgANRKaRHC 6K7+TDtTOns2CtdTI5H4LF8flWz1gLO9yWz2jdSn5uhpLOITXF7lYou0XRgFGv2PaWYq AXOCy1iDdaG+Sri+vFyIr/vUmYJMCozPMeiagWsmC8NIh9RWYErRUwH5vUaEMpHnN4hq tXUaos7/B6MnU+jR9nuf5ziHHG4DhaaJtd1/8wsdwQbEAuSFBPSKFnZjdEgdfOwub8pz GDiw==
X-Forwarded-Encrypted: i=1; AFNElJ/gbeIH4YQMD+nkcKTFuLWCim6mMl1hTe4t1WZdzTSW78XhBtsrd2K8wQjvyAfJ9aMdiUc=@ietf.org
X-Gm-Message-State: AOJu0Yxmv7p3jSACNIusYizUASUGCV64RaN+0P3hhACHVyV3bhxkxx6L kdoYaMKX6eLPu/Id/EBLnmRo/ubE8PaHPhftNmGBqhJsSPZO4RY6I4LgCBt/B9g2DC5l1EW9d2P ca7BBhv4e4EP4Marf0zfYWPXQB/2geqE=
X-Gm-Gg: AeBDieuBp8wUd1KLWClVyMEvkzGx42d6Wmjyf4U3vT8M+apiYx9xV9EkAt7Ki+mwfIO AG2/2MYGpqRskxe/XdIB+EWlP3Q5/dOy5IjDvArRoTCzQenY/B/8nhTgOQbbQ43Mmk1Nj3qS00G GBMG4bw8CsICNXkUkm8U926Gwgv9HSRqxNJZ6NCho4/CRRH0caBvOW54ZN3r9a7P0UbSsC63I86 isC6TnZCnqucx6s/uKhks/CJBV1P6QqeO4+hekdG0HI9nKra8meJzxpO3dYSdZenoHpp9YPExSE MyIxijFQL29y0Z+Vpjp5H9dximSMKDfpWZG4J2mdl/ltZK5A7I8hr+7zx9pwqbnKHTgxlmfmLQJ KjDQQzaU=
X-Received: by 2002:a05:690e:1481:b0:651:d5cb:a490 with SMTP id 956f58d0204a3-65c1b005a8bmr2157076d50.9.1777569162524; Thu, 30 Apr 2026 10:12:42 -0700 (PDT)
MIME-Version: 1.0
References: <CAKcm_gPTt1pcHEfyHQYeqGHL6NHYTb7RkZKHoaR-7ofZg=yoTg@mail.gmail.com> <2C11C671-0812-4152-9804-03C80372B164@iii.ca> <FRWPR07MB106246C776844E65C4F57FE3795352@FRWPR07MB10624.eurprd07.prod.outlook.com> <CAKcm_gORGM_mGyNkC0UQYWEwoFMWneBZDMnwgGfWt22TiJBo0A@mail.gmail.com> <CAHVo=ZmBZVJBLQFWS8HmKHOKetyrhpi40fShwhV-NFZ9L57ayg@mail.gmail.com> <CANPAELvZZb_YVXesBUkEvPY8zCzhrkm41JsjmcKZHg93WH7Zqg@mail.gmail.com>
In-Reply-To: <CANPAELvZZb_YVXesBUkEvPY8zCzhrkm41JsjmcKZHg93WH7Zqg@mail.gmail.com>
From: Suhas Nandakumar <suhasietf@gmail.com>
Date: Thu, 30 Apr 2026 10:12:31 -0700
X-Gm-Features: AVHnY4KFcjnbUDQa9ESEWIhE4OblTFeg6-6B723PrqKQ3fqrYC5wHcX5HlruGoc
Message-ID: <CAMRcRGQGe24v9KFr4nAoxX4ir=9bOMX6teL5rN1g5A9huZuN3g@mail.gmail.com>
To: Alan Frindell <afrind=40meta.com@dmarc.ietf.org>
Content-Type: multipart/alternative; boundary="0000000000007f02080650b092c0"
Message-ID-Hash: UFLVTK5VKWPWGPPLYEGG7YOUOTOVSWOI
X-Message-ID-Hash: UFLVTK5VKWPWGPPLYEGG7YOUOTOVSWOI
X-MailFrom: suhasietf@gmail.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: Luke Curley <kixelated@gmail.com>, Ian Swett <ianswett=40google.com@dmarc.ietf.org>, Magnus Westerlund <magnus.westerlund=40ericsson.com@dmarc.ietf.org>, Cullen Fluffy Jennings <fluffy@iii.ca>, MOQ Mailing List <moq@ietf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [Moq] Re: Knowing the start of a Subgroup
List-Id: Media over QUIC <moq.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/moq/fDDf7ZkatVbdUb9MJk9-lgtoTwI>
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>
As I shared my inputs during the call, SubgroupId has semantic meaning, they are part of prioritization and an essential tool for filtering. I also agree having relays knowing the first object in a sub-group is useful and making it explicit and not needing to muddle 2 different semantic entities is a good idea. It is expected for applications using layered codec and inter stream dependencies to have the subgroup carry the same meaning across groups, regardless of object numbering ( which is a in different semantic scope) +1 to make this singal explicit and mandatory and also willing to have a config byte on the first object that identifies if it is the first object of group, track, sub-group. This info will be useful for caches and also for the end application to build their buffer logic. Cheers Suhas On Thu, Apr 30, 2026 at 9:40 AM Alan Frindell <afrind= 40meta.com@dmarc.ietf.org> wrote: > > The original issue is about saving a byte or two when Object ID == > Subgroup ID. That seems like a simple encoding flag that doesn't require > changing the API. > > This compression is already possible (when the two are equal you can set a > flag in the header, and send only one). > > > what's the use-case? > > The utility is to support extensions like REWIND, etc. A cache needs to > know if it has the beginning of a subgroup in order to serve it. There are > some heuristics you can use to learn this sometimes but an explicit signal > is helpful. > > Thanks > > -Alan > > > On Thu, Apr 30, 2026 at 9:24 AM > Luke Curley <kixelated@gmail.com> wrote: > >> I missed the interim, what's the use-case? The original issue is about >> saving a byte or two when Object ID == Subgroup ID. That seems like a >> simple encoding flag that doesn't require changing the API. I would not >> require that Subgroup >> I missed the interim, what's the use-case? >> >> The original issue is about saving a byte or two when Object ID == >> Subgroup ID. That seems like a simple encoding flag that doesn't require >> changing the API. >> >> I would not require that Subgroup ID equal the first Object ID. If you >> use sub-groups for SVC, you *should *have a catalog entry indicating >> that sub-group N is an enhancement layer with parameters X (even just for >> filtering). But without tight control of the encoder, there's no way to >> enforce that frame N is the first frame of sub-group N. You'd have to +100 >> each sub-group ID (or something) just to maintain this contract for the >> first frame of a sub-group... and for what purpose? >> >> A flag indicating an object is the first within its sub-group would be >> easy. However, that information is already implicit via FETCH or SUBSCRIBE >> object arrival order. I'm not sure *why *we suddenly need an explicit >> flag, but whatever; it's just a bit. >> >> A flag indicating an object is the last within its sub-group would be >> very tough. Encoders don't emit this information, nor would an app know >> ahead of time that there will be no more deltas. You only truly know that a >> group has ended when a new group begins and a stream FIN accomplishes this >> just fine. >> >> On Thu, Apr 30, 2026, 8:11 AM Ian Swett <ianswett= >> 40google.com@dmarc.ietf.org> wrote: >> >>> Thanks for clarifying. Using subgroup IDs in the catalog is an >>> interesting usecase I hadn't considered. I'm not sure this would cause >>> practical problems, but I need more time to think about it. >>> >>> Regarding consistency, today we indicate the end of the Subgroup with a >>> stream FIN, not a bitflag on the Object. So I actually think using Subgroup >>> ID==Object ID is more consistent, but that's my opinion. >>> >>> When we originally created Subgroups, we needed an ID to stitch them >>> together in case they were split apart. I'm not sure anyone intended this >>> be exposed to the application, but it sounds like you want to? QUIC >>> doesn't expose Stream IDs as part of its API, which was an intentional >>> choice and mostly a good one. >>> >>> If we go with the bitflag approach (#1618), are people ok with requiring >>> it be set on the first Object in the Subgroup? Requiring it gives the >>> feature a lot more value IMO. >>> >>> Also, do people want to resolve the undefined prioritization between >>> Subgroups and datagrams in some way? >>> *"3. If two objects in response to the same request have the same >>> subscriber* >>> >>> >>> >>> >>> * and publisher priority and belong to the same group of the same >>> track, the one with **the lowest Subgroup ID** (for objects with >>> forwarding preference Subgroup), or **the lowest Object ID** (for objects >>> with forwarding preference Datagram) is scheduled to be sent first. If >>> the two objects have different Forwarding Preferences the order is >>> implementation dependent."* >>> >>> >>> Thanks, Ian >>> >>> On Thu, Apr 30, 2026 at 5:22 AM Magnus Westerlund <magnus.westerlund= >>> 40ericsson.com@dmarc.ietf.org> wrote: >>> >>>> Hi, >>>> >>>> My worry is exactly related to that one would like to bind sub-group >>>> IDs to catalog info making clear what improvement a particular subgroup >>>> contains. I think this matters in two ways. First related to end subscriber >>>> processing it during decoding operations. This also matters if one want to >>>> use the sub group filter as the subscriber need to know that the publisher >>>> uses the subgroup IDs consistently. >>>> >>>> With the proposal in place I think it limits the possibility to apply >>>> additional constraints on the object IDs. For example if one want the >>>> object IDs in decoding order without gaps across a full tree of different >>>> sub-groups then one have a constraint that may be difficult to fulfil if >>>> one need to reconfigure the encoder between groups to handle bandwidth >>>> limitation between the original publisher and the relay. The >>>> reconfiguration could mean skipping a sub group completely in this group. >>>> This will require a gap in the object ID to skip over the object ID = sub >>>> group ID. >>>> >>>> Yes clearly if one assign no additional semantics and accept gaps in >>>> object IDs the idea in #1608 can work. However, I think it is limitation >>>> that people with more advanced use cases in the future will be annoyed with >>>> and may result in significantly more additional signalling about gaps etc >>>> than an explicit start of sub-group indicator would require. >>>> >>>> Cheers >>>> >>>> Magnus >>>> >>>> >>>> >>>> *From: *Cullen Fluffy Jennings <fluffy@iii.ca> >>>> *Date: *Thursday, 30 April 2026 at 07:08 >>>> *To: *Ian Swett <ianswett=40google.com@dmarc.ietf.org> >>>> *Cc: *MOQ Mailing List <moq@ietf.org> >>>> *Subject: *[Moq] Re: Knowing the start of a Subgroup >>>> >>>> >>>> Three thoughts …. >>>> >>>> 1) I don’t deeply care about this one way or the other but I think we >>>> should make it mirror the end marker bits. If the original publisher knows >>>> it is the start, or knows it is the end, it should add the marker. I think >>>> we should deal with start of track, start of group, at the same time as >>>> subgroup as it is the same issue. >>>> >>>> 2) Imagine a case where you want to refer to the SubGroup ID in the >>>> catalog to explain what layer of a codec is in that subgroup. And assume >>>> you want the object ID to increment by 1 in the group. I'm just not seeing >>>> how it works in this case. >>>> >>>> 3) Mostly I don’t worry about how we spell it on the wire but FWIW … My >>>> gut feel is we are pinning to very weird implicit signaling by taking two >>>> things that have nothing to do with each other, the subgroup id and the >>>> object id, then saying if they are equal, it means some third thing. I’d >>>> rather just explicitly signal the third thing and not have it be some >>>> implicit convention on how to use the first two things. >>>> >>>> >>>> >>>> > On Apr 29, 2026, at 3:10 PM, Ian Swett <ianswett= >>>> 40google.com@dmarc.ietf.org> wrote: >>>> > >>>> > In Monday's interim, there was strong interest in knowing what the >>>> starting Object Id of a Subgroup is, just like we know the end today. >>>> > >>>> > My proposal (#1608) was to require the Subgroup ID equal the Object >>>> ID of the first Object of the Subgroup. The original publisher would do >>>> this, and it would naturally be preserved downstream, just like Subgroup ID >>>> and Object ID are today. Some people had concerns with this, but I don't >>>> think I fully understood them? If anyone wants to spell them out in more >>>> detail, that would be great. >>>> > >>>> > To clarify, this retains the ability to stitch together a Subgroup >>>> that arrived on two separate streams for whatever reason. That is a core >>>> requirement for Subgroups. >>>> > >>>> > I'm not set on my particular design, but I reviewed #1618 (which uses >>>> a bitflag) and I think #1608 has two important advantages: >>>> > 1) It's required >>>> > 2) If you receive some Objects from a Subgroup, you know if the first >>>> one is the first Object in the subgroup. >>>> > >>>> > Thoughts? >>>> > >>>> > Thanks, Ian >>>> > -- >>>> > Moq mailing list -- moq@ietf.org >>>> > To unsubscribe send an email to moq-leave@ietf.org >>>> >>>> -- >>>> Moq mailing list -- moq@ietf.org >>>> To unsubscribe send an email to moq-leave@ietf.org >>>> >>> -- >>> Moq mailing list -- moq@ietf.org >>> To unsubscribe send an email to moq-leave@ietf.org >>> >> -- >> Moq mailing list -- moq@ietf.org >> To unsubscribe send an email to moq-leave@ietf.org >> > -- > Moq mailing list -- moq@ietf.org > To unsubscribe send an email to moq-leave@ietf.org >
- [Moq] Knowing the start of a Subgroup Ian Swett
- [Moq] Re: Knowing the start of a Subgroup Alan Frindell
- [Moq] Re: Knowing the start of a Subgroup Cullen Fluffy Jennings
- [Moq] Re: Knowing the start of a Subgroup Magnus Westerlund
- [Moq] Re: Knowing the start of a Subgroup Ian Swett
- [Moq] Re: Knowing the start of a Subgroup Luke Curley
- [Moq] Re: Knowing the start of a Subgroup Mo Zanaty (mzanaty)
- [Moq] Re: Knowing the start of a Subgroup Alan Frindell
- [Moq] Re: Knowing the start of a Subgroup Suhas Nandakumar
- [Moq] Re: Knowing the start of a Subgroup Luke Curley
- [Moq] Re: Knowing the start of a Subgroup Cullen Fluffy Jennings
- [Moq] Re: Knowing the start of a Subgroup Ian Swett
- [Moq] Re: Knowing the start of a Subgroup Mo Zanaty (mzanaty)
- [Moq] Re: Knowing the start of a Subgroup Ian Swett
- [Moq] Re: Knowing the start of a Subgroup Mo Zanaty (mzanaty)
- [Moq] Re: Knowing the start of a Subgroup Suhas Nandakumar
- [Moq] Re: Knowing the start of a Subgroup Luke Curley
- [Moq] Re: Knowing the start of a Subgroup Alan Frindell
- [Moq] Re: Knowing the start of a Subgroup Alan Frindell
- [Moq] Web conferencing demo over MOQT Yu You (Nokia)
- [Moq] Re: Knowing the start of a Subgroup Cullen Fluffy Jennings