You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: archive.json
+118-9Lines changed: 118 additions & 9 deletions
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
{
2
2
"magic": "E!vIA5L86J2I",
3
-
"timestamp": "2025-11-27T01:48:18.491611+00:00",
3
+
"timestamp": "2025-11-30T02:01:26.236814+00:00",
4
4
"repo": "moq-wg/moq-transport",
5
5
"labels": [
6
6
{
@@ -42843,11 +42843,13 @@
42843
42843
"state": "OPEN",
42844
42844
"author": "martinduke",
42845
42845
"authorAssociation": "CONTRIBUTOR",
42846
-
"assignees": [],
42846
+
"assignees": [
42847
+
"martinduke"
42848
+
],
42847
42849
"labels": [],
42848
42850
"body": "PR #1350 allowed Datagrams and streams to coexist on the same track, as agreed in Toronto.\n\nHere are the minutes of that discussion: https://datatracker.ietf.org/doc/minutes-interim-2025-moq-22-202509251330/ (Ctrl+F for \"Delivery Timeout Mix and Match\")\n\nThis PR is missing two parts of that discussion:\n1) We agreed that a single subgroup cannot contain both datagrams and streams. \n2) I noted that we have to encode the subgroup ID in the DATAGRAM frame, or reserve a specific subgroup ID for datagrams, or something. The current mapping where subgroup_id == object_id does not work if subgroups have arbitrary IDs. I would propose that subgroup ID zero be reserved for datagrams. Datagrams exist outside of stream priorities, so that sort of works. If pub and sub priorities, and group IDs , are equal, it makes sense that datagrams would be delivered to QUIC first. Zero is a special subgroup that has no implied dependencies between its objects.\n\nUpon further reflection, I'm not sure that the current state completely breaks any functions of the protocol, but it does confuse the idea that a subgroup has a particular priority. I would not like to wave through this change to the object model without at least discussing it.\n",
42849
42851
"createdAt": "2025-11-26T21:54:39Z",
42850
-
"updatedAt": "2025-11-26T23:41:08Z",
42852
+
"updatedAt": "2025-11-28T22:12:14Z",
42851
42853
"closedAt": null,
42852
42854
"comments": [
42853
42855
{
@@ -42870,6 +42872,27 @@
42870
42872
"body": "I think my proposal is:\n\n1) Datagrams do not have a subgroup ID at all. Subgroup IDs are for grouping things into streams, which you never do with datagrams. \n2) If a there are two scheduleable objects in the same track, same group, same pub priority and one is in a subgroup and one is in a datagram, Object ID is a reasonable tiebreaker, but I can live with implementation dependent, or subgroup wins. Datagram wins feels yucky to me but I don't care.\n3) Come up with some other encoding for datagrams in fetch responses that doesn't involve subgroup ID. My best idea is to use one of the unused bits in the serialization flag.",
42871
42873
"createdAt": "2025-11-26T23:41:08Z",
42872
42874
"updatedAt": "2025-11-26T23:41:08Z"
42875
+
},
42876
+
{
42877
+
"author": "martinduke",
42878
+
"authorAssociation": "CONTRIBUTOR",
42879
+
"body": "Except that we don't agree on the priority that we also don't care about, this then amounts to spelling in the FETCH (serialization flag vs group id 0). I do not see exactly how to use the serialization flag, but if you can make it work that's great.",
42880
+
"createdAt": "2025-11-27T02:54:52Z",
42881
+
"updatedAt": "2025-11-27T02:54:52Z"
42882
+
},
42883
+
{
42884
+
"author": "afrind",
42885
+
"authorAssociation": "COLLABORATOR",
42886
+
"body": "I don't love this but:\n\nBitmask | Condition if set | Condition if not set (0)\n-- | -- | --\n0x04 | Object ID field is present | Object ID is the prior Object's ID plus one\n0x08 | Group ID field is present | Group ID is the prior Object's Group ID\n0x10 | Priority field is present | Priority is the prior Object's Priority\n0x20 | Extensions field is present | Extensions field is not present\n0x40 | PROTOCOL_VIOLATION | N/A\n\nChange 0x40 to \"Datagram\" - if 1, the object is the datagram and the subgroup is meaningless. bits 0-1 MUST NOT be 0x3 (subgroup ID present).\n",
42887
+
"createdAt": "2025-11-27T03:06:19Z",
42888
+
"updatedAt": "2025-11-27T03:06:19Z"
42889
+
},
42890
+
{
42891
+
"author": "martinduke",
42892
+
"authorAssociation": "CONTRIBUTOR",
42893
+
"body": "oh, I hadn't noticed we landed those flags. sounds good.",
42894
+
"createdAt": "2025-11-28T22:12:07Z",
42895
+
"updatedAt": "2025-11-28T22:12:07Z"
42873
42896
}
42874
42897
]
42875
42898
}
@@ -160000,7 +160023,7 @@
160000
160023
],
160001
160024
"body": "I did not remove Request ID entirely in this PR, because it makes the most sense to do that all at once, but I did create new 'NAMESPACE' and 'NAMESPACE_DONE' messages that are separate from PUBLISH_NAMESPACE/PUBLISH_NAMESPACE_DONE and much simpler.\r\n\r\nSaves bytes on the wire by not repeating the 'Track Namespace Prefix' for every Namespace.\r\n\r\nRemoves UNSUBSCRIBE_NAMESPACE because we can just close the stream.\r\n\r\nFixes #1348 \r\nFixes #1310\r\nFixes #1305\r\nFixes part of #1168 \r\nFixes #843\r\n\r\nFurther possible changes:\r\n 1) Don't send REQUEST_ERROR on errors, QUIC RESET_STREAM with the application error code. Loses Reason Phrase\r\n 2) Don't send REQUEST_OK on success. Loses response parameters.\r\n 3) Allow for subscribing to full Track names and not just Namespaces.\r\n 4) Prohibit sending NAMESPACE_DONE before a NAMESPACE is received for a SUBSCRIBE_NAMESPACE\r\n 5) Add a PUBLISH_BLOCKED sent on the response stream when a new PUBLISH couldn't be sent #1262 \r\n 6) Drop the length from NAMESPACE and NAMESPACE_DONE",
"body": "```suggestion\r\nTracks and Objects can have additional relay-visible fields, known as Extension\r\nHeaders, which do not require negotiation, and can be used to alter\r\n```",
163069
+
"createdAt": "2025-11-29T18:30:07Z",
163070
+
"updatedAt": "2025-11-29T18:30:07Z"
163071
+
}
163072
+
]
163073
+
},
163074
+
{
163075
+
"id": "PRR_kwDOG2Ho4M7R2u8Z",
163076
+
"commit": {
163077
+
"abbreviatedOid": "9e1b0ca"
163078
+
},
163079
+
"author": "ianswett",
163080
+
"authorAssociation": "COLLABORATOR",
163081
+
"state": "COMMENTED",
163082
+
"body": "",
163083
+
"createdAt": "2025-11-29T18:33:38Z",
163084
+
"updatedAt": "2025-11-29T18:33:39Z",
163085
+
"comments": [
163086
+
{
163087
+
"originalPosition": 14,
163088
+
"body": "I'm removing this sentence because it's non-normative and inconsistent as you said.\r\n\r\n```suggestion\r\nconcerning processing, modification, caching and forwarding.\r\n```",
163089
+
"createdAt": "2025-11-29T18:33:38Z",
163090
+
"updatedAt": "2025-11-29T18:33:39Z"
163091
+
}
163092
+
]
163010
163093
}
163011
163094
]
163012
163095
},
@@ -163157,13 +163240,13 @@
163157
163240
"labels": [],
163158
163241
"body": "Fixes #1354 ... which addressed six previous issues.\r\n\r\nCredits to @wilaw and @acbegen ",
0 commit comments