Network Working GroupM. McRoberts
Internet-DraftProject Baird
Intended status: InformationalJuly 7, 2010
Expires: January 8, 2011 


Uniform Resource Identifiers for Digital Video Broadcasting (DVB)
draft-mcroberts-uri-dvb-04

Abstract

This document defines the "dvb" URI scheme for the benefit of the Internet community, given its definition as part of the Digital Video Broadcasting (DVB) suite of ETSI standards.

Status of this Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as “work in progress.”

This Internet-Draft will expire on January 8, 2011.

Copyright Notice

Copyright (c) 2010 IETF Trust and the persons identified as the document authors. All rights reserved.

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.



1.  Introduction

Standards governing televisions, set-top boxes and other consumer electronics devices have for some time been developed with the Internet in mind. The use of Universal Resource Identifiers (URIs) [RFC 3986] (Berners-Lee, T., Fielding, R., and L. Masinter, “Uniform Resource Identifier (URI): Generic Syntax,” January 2005.) is now commonplace, including for the purpose of identifying resources delivered by way of terrestrial, satellite and cable broadcasts.

For this purpose, a URI scheme was developed as part of the Digital Video Broadcasting [DVB] (, “DVB Project,” .) suite of standards specifically for the purpose of identifying broadcasts delivered by way of DVB-compliant broadcasting systems.



2.  Digital Video Broadcasting URI

The DVB URI is defined by [ETSI TS 102 851] (European Broadcasting Union, DVB Project, and European Telecommunications Standards Institute, “Digital Video Broadcasting (DVB); Uniform Resource Identifiers (URI) for DVB Systems,” January 2010.), and that shall be considered the authoritative source of the definition of the scheme-specific-part of the DVB URI. The remainder of this section is therefore non-normative.

URIs employing the dvb scheme are URLs. DVB URLs may refer to any of the following kinds of resource:



2.1.  Syntax

DVB URLs conform to one of the two following formats:

"dvb://" original_network_id "." [ transport_stream_id ]
[ "." service_id [ "." component-set [ "$" carousel-id ] ]
[ event-constraint ] ] [ path-absolute ]
"dvb://'" textual_service_id "'" [ "." component-set
[ "$" carousel-id ] ] [ event-constraint ] [ path-absolute ]

The URL format is defined in terms of the Augmented Backus-Naur Form (ABNF) notation of [RFC 5234] (Crocker, D., Ed. and P. Overell, “Augmented BNF for Syntax Specifications: ABNF,” January 2008.) below. The ABNF below makes use of the following core ABNF syntax rules defined by that specification: DIGIT, ALPHA, and HEXDIG. Additionally, it below makes use of host, path-absolute, unreserved and pct-encoded as defined by [RFC 3986] (Berners-Lee, T., Fielding, R., and L. Masinter, “Uniform Resource Identifier (URI): Generic Syntax,” January 2005.).

dvb_url             =  scheme ":" hier-part

scheme              =  "dvb"

hier-part           =  net-path / abs-path

net-path            =  "//" ( entity [ abs-path ] ) / app-entity

entity-path         =  entity abs-path

entity              =  ts | service | service-comp

ts                  =  original_network_id "." transport_stream_id

service             =  service-no-event [ event-constraint ]

service-comp        =  service-no-event "." component-set
                       [ "$" carousel-id ]
                       [ event-constraint ]

service-no-event    =  orignal_network_id "." [ transport_stream_id ]
                       "." service_id | "'" textual_service_id "'"

component-set       =  comp-tag-set | qual-comp-set

comp-tag-set        =  component_tag *( "&" component_tag )

qual-comp-set       =  qual-comp *( "&" qual-comp )

qual-comp           =  comp-type "=" component-id

comp-type           =  "video" | "audio" | "data" | "subtitle"
                       | "teletext" | "dvbst"

component-id        =  component_string | "default" | "current"
                       | "hearing_impaired" | "visually_impared"
                       | "none"

component_string    =  iso639-lang-code | component_tag

app-entity          =  svc-context | svc-comp-context
                       | ait-specifier

svc-context         =  "current" | "original"

svc-comp-context    =  "current.audio" | "current.video"
                       | "current.av"

ait-specifier       =  ait-filter "." "ait" ait-abs-path

ait-filter          =  "current" | service-no-event

ait-abs-path        =  "/" ait-entity

ait-entity          =  "app_root" | ait-app

ait-app             =  org_id_part "." app_id_part [ "?" ait-params ]

ait-params          =  "arg_" 1 * digit "=" *uric [ "&" ait-params ]

event-constraint    =  event-id-mode | tva-id-only-mode | timespec

event-id-mode       =  ";" event_id [ ";" tva-id ] [ timespec ]

tva-id-only-mode    =  ";;" tva-id [ timespec ]

timespec            =  "~" start-time "--" duration

start-time          =  date "T" time "Z"

duration            =  "PT" hours "H" minutes "M" [ seconds "S" ]

date                =  year month day

time                =  hours minutes [ seconds ]

carousel-id         =  transaction_id ; [ETSI EN 301 192]

original_network_id =  hex_string

transport_stream_id =  hex_string

service_id          =  hex_string

component_tag       =  hex_string

event_id            =  hex_string

transaction_id      =  hex_string

abs-path            =  path-absolute  ; [RFC 3986], Section 3.3

textual_service_id  =  host           ; [RFC 3986], Section 3.2.2

org_id_part         =  1 * HEXDIG     ; [ETSI TS 102 812]

app_id_part         =  1 * HEXDIG     ; [ETSI TS 102 812]

iso639-lang-code    =  3 * ALPHA

hex_string          =  1 * HEXDIG

tva-id              =  1 * HEXDIG

year                =  4 DIGIT

month               =  2 DIGIT

day                 =  2 DIGIT

hours               =  2 DIGIT

minutes             =  2 DIGIT

seconds             =  2 DIGIT

uric                =  unreserved / pct-encoded / ";" / "?" / ":"
                       / "@" / "&" / "=" / "+" / "$" / "," / "/"


2.1.1.  Encoding

Section 5 of [ETSI TS 102 851] (European Broadcasting Union, DVB Project, and European Telecommunications Standards Institute, “Digital Video Broadcasting (DVB); Uniform Resource Identifiers (URI) for DVB Systems,” January 2010.) specifies that:

"All characters not within the range of characters allowed in a URI must be encoded into UTF-8 and included in the URI as a sequence of escaped octets. An escaped octet is encoded as a character triplet, consisting of the percent character "%" followed by the two hexadecimal digits representing the octet code."



2.2.  Applications

dvb URIs are used most often within the context of DVB itself: interactive television applications use them in order to locate resources and to reference services and programmes which are broadcast.

There are, however, wider applications: a dvb URI may be used by anything wishing to identify a DVB service, event, or even specific resource. For example, a receiver connected to a local area network might allow other devices to query it for information regarding the current programme or service: in this context, a dvb URI would typically be the most authoritative single identifier which could be used to to refer to that programme.

Similarly, a web service could be implemented by a platform operator or a broadcaster (or some party working on their behalf) which allows resolution of dvb URIs - this would allow a device to retrieve web pages or other content which relate to the current programme (or some other entry in the device's Electronic Programme Guide).

Implementing such a system would naturally require some mechanism for devices to discover an appropriate resolution service, and no standard mechanism exists to date, however RadioDNS [RADIODNS] (, “RadioDNS,” .) has developed a generic service discovery system for use with broadcast radio which could be applied to DVB (or indeed other broadcast systems) with little in the way of modification.



2.3.  Historical Syntax

Prior to the standardisation of [ETSI TS 102 851] (European Broadcasting Union, DVB Project, and European Telecommunications Standards Institute, “Digital Video Broadcasting (DVB); Uniform Resource Identifiers (URI) for DVB Systems,” January 2010.), a syntax for dvb URIs was defined by [DAVIC9] (Digital Audio-Video Council, “DAVIC 1.4.1 Specification Part 9: Information Representation,” 1999.), Section 9.5.2. The syntax defined in [ETSI TS 102 851] (European Broadcasting Union, DVB Project, and European Telecommunications Standards Institute, “Digital Video Broadcasting (DVB); Uniform Resource Identifiers (URI) for DVB Systems,” January 2010.) was designed to allow applications to work with both the current DVB syntax of URIs and also the historical syntax defined by DAVIC.

The syntax below makes use of HEXDIG from the core ABNF syntax rules defined by [RFC 5234] (Crocker, D., Ed. and P. Overell, “Augmented BNF for Syntax Specifications: ABNF,” January 2008.). Additionally, it makes use of unreserved and escaped as defined by [RFC 3986] (Berners-Lee, T., Fielding, R., and L. Masinter, “Uniform Resource Identifier (URI): Generic Syntax,” January 2005.).

dvb_url             =  scheme ":" hier-part

scheme              =  "dvb"

hier-part           =  net-path / abs-path

net-path            =  "//" entity [ abs-path ]

entity              =  transport-stream / service / service-component

transport-stream    =  original_network_id "." transport_stream_id

service             =  original_network_id [ "."
                       transport_stream_id ] "." service_id
                       [ event-constraint ]

service-component   =  service "." component-tag-set
                       [ event-constraint ]

component-tag-set   =  component-tag *( "&" component-tag )

event-constraint    =  ";" event_id

abs-path            =  "/" segment

path_segments       =  segment *( "/" segment )

segment             =  *pchar *( ";" param )

param               =  *pchar

pchar               =  unreserved | escaped | ":" | "@" | "&" | "="
                       | "+" | "$" | ","

original_network_id =  hex_string

transport_stream_id =  hex_string

service_id          =  hex_string

component_tag       =  hex_string

event_id            =  hex_string

hex_string          =  1 * HEXDIG



2.4.  Examples

dvb://233a.1041
DVB transport stream
dvb://233a.1041.10bf
DVB service
dvb://233a.1004.1044;8fff
Event within a DVB service
dvb://233a.1004.1044;8fff~20100706T000315Z--PT00H03M00S
Time-constrained event on a DVB service
dvb://233a.1004.1044;8fff@2010-07-06T00:03:15Z/PT00H03M00S
Time-constrained event on a DVB service (historical syntax)
dvb://233a.1041.10bf/doc/form.pdf
File in a subdirectory of the default object carousel of a specific DVB service
dvb:/image.png
File in root directory of the default object carousel on the current service



3.  IANA Considerations

This specification requests the IANA provisionally register the "dvb" URI scheme as specified in this document and summarized in the following template, per [BCP 115] (Hansen, T., Hardie, T., and L. Masinter, “Guidelines and Registration Procedures for New URI Schemes,” February 2006.):

URI scheme name.
dvb
Status.
provisional
URI scheme syntax.
See Table 1 of [ETSI TS 102 851] (European Broadcasting Union, DVB Project, and European Telecommunications Standards Institute, “Digital Video Broadcasting (DVB); Uniform Resource Identifiers (URI) for DVB Systems,” January 2010.)
URI scheme semantics.
The dvb scheme references services and resources which are transmitted using Digital Video Broadcasting-compliant broadcasting systems.
Encoding considerations.
See Section 5 of [ETSI TS 102 851] (European Broadcasting Union, DVB Project, and European Telecommunications Standards Institute, “Digital Video Broadcasting (DVB); Uniform Resource Identifiers (URI) for DVB Systems,” January 2010.)
Applications/protocols that use this URI scheme name.
dvb URIs are used throughout DVB-compliant broadcasting systems, for example within Freeview and Freesat in the United Kingdom. They are also used in TV-Anytime [TV‑ANYTIME] (, “TV Anytime Forum,” .) metadata where it relates to services transmitted by DVB systems.
Interoperability considerations.
None known.
Security considerations.
See Section 4 (Security Considerations).
Contact.
Mo McRoberts <mo.mcroberts@nexgenta.com>
Author/Change controller.
Mo McRoberts <mo.mcroberts@nexgenta.com>
References.
See Section 5.



4.  Security Considerations

Section 7 of [RFC 3986] (Berners-Lee, T., Fielding, R., and L. Masinter, “Uniform Resource Identifier (URI): Generic Syntax,” January 2005.) describes general security considerations for URI schemes. The sections relating to reliability and consistency, malicious construction, back-end transcoding, rare IP address formats and semantic attacks all apply to dvb URIs. The section relating to sensitive information does not apply, given that dvb URIs do not contain authentication information.

The security considerations of the Digital Video Broadcasting suite of standards in general are not covered in this document.



5.  References



5.1. Normative References

[RFC 3986] Berners-Lee, T., Fielding, R., and L. Masinter, “Uniform Resource Identifier (URI): Generic Syntax,” RFC 3986, January 2005.
[ETSI TS 102 851] European Broadcasting Union, DVB Project, and European Telecommunications Standards Institute, “Digital Video Broadcasting (DVB); Uniform Resource Identifiers (URI) for DVB Systems,” ETSI TS 102 851, January 2010.


5.2. Informative References

[DVB] DVB Project.”
[TV-ANYTIME] TV Anytime Forum.”
[RFC 5234] Crocker, D., Ed. and P. Overell, “Augmented BNF for Syntax Specifications: ABNF,” RFC 5234, STD 68, January 2008.
[ETSI TS 102 812] European Broadcasting Union, DVB Project, and European Telecommunications Standards Institute, “Digital Video Broadcasting (DVB); Multimedia Home Platform (MHP) Specification 1.1.1,” ETSI TS 102 812, August 2008.
[DAVIC9] Digital Audio-Video Council, “DAVIC 1.4.1 Specification Part 9: Information Representation,” 1999.
[BCP 115] Hansen, T., Hardie, T., and L. Masinter, “Guidelines and Registration Procedures for New URI Schemes,” RFC 4395, BCP 115, February 2006.
[RADIODNS] RadioDNS.”


Author's Address

  Mo McRoberts
  Project Baird
Email:  mo.mcroberts@nexgenta.com
URI:  http://projectbaird.com/