§7.5.

SUBSCRIBE_UPDATE

A subscriber issues a SUBSCRIBE_UPDATE to a publisher to request a change to an existing subscription. Subscriptions can only become more narrow, not wider, because an attempt to widen a subscription could fail. If Objects before the start or after the end of the current subscription are needed, a fetch might be able to retrieve objects before the start. The start Object MUST NOT decrease and when it increases, there is no guarantee that a publisher will not have already sent Objects before the new start Object. The end Group MUST NOT increase and when it decreases, there is no guarantee that a publisher will not have already sent Objects after the new end Object. A publisher SHOULD close the Session as a 'Protocol Violation' if the SUBSCRIBE_UPDATE violates either rule or if the subscriber specifies a Subscribe ID that has not existed within the Session.

There is no control message in response to a SUBSCRIBE_UPDATE, because it is expected that it will always succeed and the worst outcome is that it is not processed promptly and some extra objects from the existing subscription are delivered.

Unlike a new subscription, SUBSCRIBE_UPDATE can not cause an Object to be delivered multiple times. Like SUBSCRIBE, EndGroup MUST specify the same or a later object than StartGroup and StartObject.

The format of SUBSCRIBE_UPDATE is as follows:

SUBSCRIBE_UPDATE Message {
  Type (i) = 0x2,
  Length (i),
  Subscribe ID (i),
  StartGroup (i),
  StartObject (i),
  EndGroup (i),
  Subscriber Priority (8),
  Number of Parameters (i),
  Subscribe Parameters (..) ...
}
Figure 6: MOQT SUBSCRIBE_UPDATE Message
  • Subscribe ID: The subscription identifier that is unique within the session. This MUST match an existing Subscribe ID.

  • StartGroup: The start Group ID.

  • StartObject: The start Object ID.

  • EndGroup: The end Group ID, plus 1. A value of 0 means the subscription is open-ended.

  • Subscriber Priority: Specifies the priority of a subscription relative to other subscriptions in the same session. Lower numbers get higher priority. See Section 5.

  • Subscribe Parameters: The parameters are defined in Section 7.1.1.

This is one section of the MoQT specification, rendered per-section for quick reference and citation. The authoritative text is draft-ietf-moq-transport-09 at the IETF.