HESP - High Efficiency Streaming Protocol
draft-theo-hesp-06
Document | Type | Active Internet-Draft (individual) | |
---|---|---|---|
Author | Pieter-Jan Speelmans | ||
Last updated | 2024-04-17 | ||
RFC stream | (None) | ||
Intended RFC status | (None) | ||
Formats | |||
Stream | Stream state | (No stream defined) | |
Consensus boilerplate | Unknown | ||
RFC Editor Note | (None) | ||
IESG | IESG state | I-D Exists | |
Telechat date | (None) | ||
Responsible AD | (None) | ||
Send notices to | (None) |
draft-theo-hesp-06
# Document Shepherd Writeup Technical Summary: This document describes a YANG data model for the SCHC (Static Context Header Compression) compression and fragmentation rules for RFC 8724 and RFC 8824 Working Group Summary: This document was discussed at a number of LPWAN interim meetings. There was never any form of opposition against it. The way to allow extensions in particular with the upcoming "compound ack" spec was studied. Personnal: Document Shepherd: Pascal Thubert Responsible Area Director: Eric Vyncke Template: *This version is dated 8 April 2022.* ## Document History 1. Does the working group (WG) consensus represent the strong concurrence of a few individuals, with others being silent, or did it reach broad agreement? It's more of the former. LPWAN has a core of 6-8 people that are very active and implement open source code as well as proprietary stacks for LoRa and SigFox. 2. Was there controversy about particular points, or were there decisions where the consensus was particularly rough? There was a global approval; One slight issue was heavily discussed: the size of a timer in seconds, 32 vs. 64 bits. The RFC does not constrain the duration of the timer. On paper, all the proposed representations (string and cbor) do not need to know so it should not matter. But the implementer may depend on the YANG model to type his variables. The proposal was made to replace the 64 bits by a mantissa (2 bytes) and a 1 byte exponent of 2. A default value for the exponent (13, with the base unit in microseconds) can be omitted in the air, allowing 2 octets to indicate from 1s to 18H. 3. Has anyone threatened an appeal or otherwise indicated extreme discontent? If so, please summarize the areas of conflict in separate email messages to the responsible Area Director. (It should be in a separate email because this questionnaire is publicly available.) No 4. For protocol documents, are there existing implementations of the contents of the document? Have a significant number of potential implementers indicated plans to implement? Are any existing implementations reported somewhere, either in the document itself (as [RFC 7942][3] recommends) or elsewhere (where)? There is at least a partial implementations of the model in openSCHC, see (*) at the end of this writeup ### Additional Reviews 5. Does this document need review from other IETF working groups or external organizations? Have those reviews occurred? No such thing 6. Describe how the document meets any required formal expert review criteria, such as the MIB Doctor, YANG Doctor, media type, and URI type reviews. The document was reviewed by a YANG doctor (https://datatracker.ietf.org/doc/review-ietf-lpwan-schc-yang-data-model-04-yangdoctors-early-moberg-2021-04-13/). It was edited by a lead SCHC author and reviewed by the SCHC editor. 7. If the document contains a YANG module, has the final version of the module been checked with any of the [recommended validation tools][4] for syntax and formatting validation? If there are any resulting errors or warnings, what is the justification for not fixing them at this time? Does the YANG module comply with the Network Management Datastore Architecture (NMDA) as specified in [RFC 8342][5]? Yes, the document was validated through IETF YANG tools including yangson, see (*) at the end of this writeup 8. Describe reviews and automated checks performed to validate sections of the final version of the document written in a formal language, such as XML code, BNF rules, MIB definitions, CBOR's CDDL, etc. There's only YANG ### Document Shepherd Checks 9. Based on the shepherd's review of the document, is it their opinion that this document is needed, clearly written, complete, correctly designed, and ready to be handed off to the responsible Area Director? Certainly. 10. Several IETF Areas have assembled [lists of common issues that their reviewers encounter][6]. Do any such issues remain that would merit specific attention from subsequent reviews? I could not find one relevant here 11. What type of RFC publication is being requested on the IETF stream (Best Current Practice, Proposed Standard, Internet Standard, Informational, Experimental, or Historic)? Why is this the proper type of RFC? Do all Datatracker state attributes correctly reflect this intent? Proposed Standard, which makes sense for such content. Datatracker state attributes are correct. 12. Has the interested community confirmed that any and all appropriate IPR disclosures required by [BCP 78][7] and [BCP 79][8] have been filed? If not, explain why. If yes, summarize any discussion and conclusion regarding the intellectual property rights (IPR) disclosures, including links to relevant emails. Yes and there' s no IPR against this document. 13. Has each Author or Contributor confirmed their willingness to be listed as such? If the number of Authors/Editors on the front page is greater than 5, please provide a justification. All good on that front 14. Identify any remaining I-D nits in this document. (See [the idnits tool][9] and the checkbox items found in Guidelines to Authors of Internet-Drafts). Simply running the idnits tool is not enough; please review the entire guidelines document. All good now. 15. Should any informative references be normative or vice-versa? All good; there could have been a ref to YANG. Also I suggested to move the LoRa reference to informational 16. List any normative references that are not freely available to anyone. Did the community have sufficient access to review any such normative references? none 17. Are there any normative downward references (see [RFC 3967][10], [BCP 97][11])? If so, list them. none 18. Are there normative references to documents that are not ready for advancement or are otherwise in an unclear state? If they exist, what is the plan for their completion? none 19. Will publication of this document change the status of any existing RFCs? If so, does the Datatracker metadata correctly reflect this and are those RFCs listed on the title page, in the abstract, and discussed in the introduction? If not, explain why and point to the part of the document where the relationship of this document to these other RFCs is discussed. no 20. Describe the document shepherd's review of the IANA considerations section, especially with regard to its consistency with the body of the document. Confirm that all aspects of the document requiring IANA assignments are associated with the appropriate reservations in IANA registries. Confirm that any referenced IANA registries have been clearly identified. Confirm that each newly created IANA registry specifies its initial contents, allocations procedures, and a reasonable name (see [RFC 8126][12]). No IANA, this specification is purely for the YANG model, no new functionality or format. 21. List any new IANA registries that require Designated Expert Review for future allocations. Are the instructions to the Designated Expert clear? Please include suggestions of designated experts, if appropriate. none [1]: https://www.ietf.org/about/groups/iesg/ [2]: https://www.rfc-editor.org/rfc/rfc4858.html [3]: https://www.rfc-editor.org/rfc/rfc7942.html [4]: Internet-Draft HESP April 2024 * Each media sample of the Initialization Stream MUST be independent (i.e., an I frame in H.264) and individually addressable (the latter is currently always true for HESP.) * Initialization Packets MUST contain a reference to the subsequent sample in the Continuation Segment, where this subsequent sample MUST be either independent (i.e., an I frame in H.264) or dependent on the media sample directly preceding it in decode order (i.e., a P frame referencing only the previous frame.) If the subsequent sample does not meet this constraint, then this Initialization Packet MUST NOT be published. Instead, the last valid Initialization Packet MUST be returned if this Sequence Number is queried. The Continuation Stream for Tracks of the Compatibility Profile must satisfy the following requirements: * Continuation Segments SHOULD NOT exceed a duration of 30 seconds. * Each CMAF Fragment of the Continuation Segment MUST contain at most the amount of media samples of a sub-GOP (defined below.) * The following GOP structure must be followed in the underlying H.264 stream: I, B (repeated n times), P, B (repeated n times), P, where n lies between 0 and 4. * Each sub-GOP (B ... B P) MUST depend on at most one previous frame (allowing for keyframe insertion.) C.2.1. Example Figure 5 depicts a part of H.264 output of 7 frames, sorted in decode order. The dependencies of each frame are shown with arrows. ______________________________________ | | | | V | | | +----+ +----+ +----+ +----+ +----+ +----+ +----+ |####| |%%%%| |%%%%| |%%%%| |@@@@| |@@@@| |@@@@| | I1 | | P4 | | B2 | | B3 | | P7 | | B5 | | B6 | +----+ +----+ +----+ +----+ +----+ +----+ +----+ ^ | ^ | | ^ | | |_____| | | | |______| | | | | | | | |________|_____| | |______________| | | |______________________| Figure 5: Continuation stream with sub-GOPs Speelmans Expires 19 October 2024 [Page 78] Internet-Draft HESP April 2024 C.2.1.1. Sub GOPs A "sub-GOP" defines a set of B and P frames that only depend on one previous frame. In Figure 5, there are 3 sub-GOPs: * sub-GOP 1 (####) contains only a single I frame. * sub-GOP 2 (%%%%) contains a P frame (P4) that only depends on I1; all B frames depend on I1 and P4. * sub-GOP 3 (@@@@) contains a P frame (P7) that only depends on P4; all B frames depend on P7 and P4. C.2.1.2. Initialization Packets An Initialization Packet can be published if the subsequent media sample of the Continuation Stream depends on at most one previous frame. For Figure 5, this is the case at the following positions: * position 1: an Initialization Packet can be published. It will contain IDR1 (a keyframe matching the timestamp of I1) and will reference P4, the subsequent media sample of the Continuation Stream that only depends on I1. On the client-side, the media data will be decoded with IDR1 inserted at the location of I1. * position 4: an Initialization Packet can be published. It will contain IDR4 (a keyframe matching the timestamp of P4) and will reference P7, the subsequent media sample of the Continuation Stream that only depends on P4. On the client-side, the media data will be decoded with IDR4 inserted at the location of P4. A client requesting an Initialization Packet at other time positions must receive the most recent valid Initialization Packet. For example, that means that a request for an Initialization Packet at position 2 in Figure 5 must return the Initialization Packet at position 1. Author's Address Pieter-Jan Speelmans (editor) THEO Technologies Leuven Belgium Email: pieter-jan.speelmans@theoplayer.com Speelmans Expires 19 October 2024 [Page 79]