Skip to main content

HTTP Live Streaming
draft-pantos-http-live-streaming-10

The information below is for an old version of the document.
Document Type
This is an older version of an Internet-Draft that was ultimately published as RFC 8216.
Author Roger Pantos
Last updated 2012-10-15
RFC stream (None)
Formats
IETF conflict review conflict-review-pantos-http-live-streaming, conflict-review-pantos-http-live-streaming, conflict-review-pantos-http-live-streaming, conflict-review-pantos-http-live-streaming, conflict-review-pantos-http-live-streaming, conflict-review-pantos-http-live-streaming, conflict-review-pantos-http-live-streaming, conflict-review-pantos-http-live-streaming
Additional resources
Stream Stream state (No stream defined)
Consensus boilerplate Unknown
RFC Editor Note (None)
IESG IESG state Became RFC 8216 (Informational)
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-pantos-http-live-streaming-10
IS-IS Working Group                                         S. Litkowski
Internet-Draft                                                    Orange
Intended status: Standards Track                                D. Yeung
Expires: July 25, 2019                                       Arrcus, Inc
                                                               A. Lindem
                                                           Cisco Systems
                                                                J. Zhang
                                                        Juniper Networks
                                                               L. Lhotka
                                                                  CZ.NIC
                                                        January 21, 2019

                   YANG Data Model for IS-IS Protocol
                    draft-ietf-isis-yang-isis-cfg-31

Abstract

   This document defines a YANG data model that can be used to configure
   and manage IS-IS protocol on network elements.

Requirements Language

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in BCP
   14 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.

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 https://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 July 25, 2019.

Litkowski, et al.         Expires July 25, 2019                 [Page 1]
Internet-Draft                  isis-cfg                    January 2019

Copyright Noticeapplied across media segments.  The IV used for encryption MUST be
   either the sequence number of the media segment or the value of the
   IV attribute of the EXT-X-KEY tag, as described in Section 5.2.

   If the encryption METHOD is AES-128 and the Playlist contains an EXT-
   X-I-FRAMES-ONLY tag, AES-128 CBC encryption with PKCS7 padding
   [RFC5652] MUST be applied to the entire resource.  The entire
   resource MUST be encrypted.  Encryption MAY be restarted on 16-byte
   block boundaries, unless the first block contains an I-frame.  The IV
   used for encryption MUST be either the sequence number of the media
   segment or the value of the IV attribute of the EXT-X-KEY tag, as
   described in Section 5.2.

   If the encryption METHOD is SAMPLE-AES, certain elementary streams
   MAY be encrypted prior to encapsulation in a media segment.  The
   encryption format for H.264, AAC and AC-3 elementary streams is
   described by [SampleEnc].

   The server MUST NOT remove an EXT-X-KEY tag from the Playlist file if
   it applies to any media segment in the Playlist file.

6.2.4.  Providing variant streams

   A server MAY offer multiple Playlist files to provide different
   encodings of the same presentation.  If it does so it SHOULD provide
   a variant Playlist file that lists each variant stream to allow
   clients to switch between encodings dynamically.

   Variant Playlists MUST contain an EXT-X-STREAM-INF tag or EXT-X-I-
   FRAME-STREAM-INF tag for each variant stream.  Each tag identifying
   an encoding of the same presentation MUST have the same PROGRAM-ID
   attribute value.  The PROGRAM-ID value for each presentation MUST be
   unique within the variant Playlist.

   If an EXT-X-STREAM-INF tag or EXT-X-I-FRAME-STREAM-INF tag contains
   the CODECS attribute, the attribute value MUST include every format
   defined by [RFC6381] that is present in any media segment that
   appears or will appear in the Playlist file.

   The server MUST meet the following constraints when producing variant
   streams:

      Each variant stream MUST present the same content, including
      stream discontinuities.

      Each variant Playlist file MUST have the same target duration.
      The only exception is that SUBTITLES renditions with a EXT-X-
      PLAYLIST-TYPE of VOD MAY have longer target durations.

Pantos & May             Expires April 18, 2013                [Page 24]
Internet-Draft             HTTP Live Streaming              October 2012

      Content that appears in one variant Playlist file but not in
      another MUST appear either at the beginning or at the end of the
      Playlist file and MUST NOT be longer than the target duration.

      Matching content in variant streams MUST have matching timestamps.
      This allows clients to synchronize the streams.

      Each Elementary Audio Stream segment MUST signal the timestamp of
      its first sample with an ID3 PRIV tag [ID3] at the beginning of
      the segment.  The ID3 PRIV owner identifier MUST be
      "com.apple.streaming.transportStreamTimestamp".  The ID3 payload
      MUST be a 33-bit MPEG-2 Program Elementary Stream timestamp
      expressed as a big-endian eight-octet number, with the upper 31
      bits set to zero.

   In addition, all variant streams SHOULD contain the same encoded
   audio bitstream.  This allows clients to switch between streams
   without audible glitching.

   The rules for variant streams also apply to alternate renditions -
   see Section 3.4.10.1.

6.3.  Client Process

6.3.1.  Introduction

   How the client obtains the URI to the Playlist file is outside the
   scope of this document; it is presumed to have done so.

   The client MUST obtain the Playlist file from the URI.  If the
   Playlist file so obtained is a variant Playlist, the client MUST
   obtain the Playlist file from the variant Playlist.

   This document does not specify the treatment of variant streams by
   clients.

6.3.2.  Loading the Playlist file

   Every time a Playlist file is loaded or reloaded from the Playlist
   URI:

      The client MUST ensure that the Playlist file begins with the
      EXTM3U tag and that the EXT-X-VERSION tag, if present, specifies a
      protocol version supported by the client; if not, the client MUST
      NOT attempt to use the Playlist.

      The client SHOULD ignore any tags and attributes it does not
      recognize.

Pantos & May             Expires April 18, 2013                [Page 25]
Internet-Draft             HTTP Live Streaming              October 2012

      The client MUST determine the next media segment to load, as
      described in Section 6.3.5.

   If the Playlist contains the EXT-X-MEDIA-SEQUENCE tag, the client
   SHOULD assume that each media segment in it will become unavailable
   at the time that the Playlist file was loaded plus the duration of
   the Playlist file.

6.3.3.  Playing the Playlist file

   The client SHALL choose which media segment to play first from the
   Playlist when playback starts.  If the EXT-X-ENDLIST tag is not
   present and the client intends to play the media regularly (i.e. in
   playlist order at the nominal playback rate), the client SHOULD NOT
   choose a segment which starts less than three target durations from
   the end of the Playlist file.  Doing so can trigger playback stalls.

   To achieve regular playback, media segments MUST be played in the
   order that they appear in the Playlist file.  The client MAY present
   the available media in any way it wishes, including regular playback,
   random access, and trick modes.

   The client MUST be prepared to reset its parser(s) and decoder(s)
   before playing a media segment that has an EXT-X-DISCONTINUITY tag
   applied to it.

   The client SHOULD attempt to load media segments in advance of when
   they will be required for uninterrupted playback to compensate for
   temporary variations in latency and throughput.

   If the Playlist file contains the EXT-X-ALLOW-CACHE tag and its value
   is NO, the client MUST NOT cache downloaded media segments after they
   have been played.  Otherwise the client MAY cache downloaded media
   segments indefinitely for later replay.

   The client MAY use the value of the EXT-X-PROGRAM-DATE-TIME tag to
   display the program origination time to the user.  If the value
   includes time zone information the client SHALL take it into account,
   but if it does not the client MUST NOT infer an originating time
   zone.

   The client MUST NOT depend upon the correctness or the consistency of
   the value of the EXT-X-PROGRAM-DATE-TIME tag.

6.3.4.  Reloading the Playlist file

   The client MUST periodically reload the Playlist file unless it
   contains the EXT-X-ENDLIST tag.

Pantos & May             Expires April 18, 2013                [Page 26]
Internet-Draft             HTTP Live Streaming              October 2012

   However the client MUST NOT attempt to reload the Playlist file more
   frequently than specified by this section.

   When a client loads a Playlist file for the first time or reloads a
   Playlist file and finds that it has changed since the last time it
   was loaded, the client MUST wait for a period of time before
   attempting to reload the Playlist file again.  This period is called
   the initial minimum reload delay.  It is measured from the time that
   the client began loading the Playlist file.

   The initial minimum reload delay is the duration of the last media
   segment in the Playlist.  Media segment duration is specified by the
   EXTINF tag.

   If the client reloads a Playlist file and finds that it has not
   changed then it MUST wait for a period of one-half the target
   duration before retrying.

   In order to reduce server load, the client SHOULD NOT reload the
   Playlist files of variant streams that are not currently being
   played.  If it decides to switch playback to a different variant, it
   SHOULD stop reloading the Playlist of the old variant and begin
   loading the Playlist of the new variant.  It can use the EXTINF
   durations and the constraints in Section 6.2.4 to determine the
   approximate location of corresponding media.  Once media from the new
   variant has been loaded, the timestamps in the media segments can be
   used to synchronize the old and new timelines precisely.  A client
   MUST NOT assume that segments with the same media sequence number in
   different variants or renditions contain matching content.

6.3.5.  Determining the next segment to load

   The client MUST examine the Playlist file every time it is loaded or
   reloaded to determine the next media segment to load.

   The first segment to load MUST be the segment that the client has
   chosen to play first, as described in Section 6.3.3.

   If the first segment to be played has been loaded and the Playlist
   file does not contain the EXT-X-MEDIA-SEQUENCE tag then the client
   MUST verify that the current Playlist file contains the URI of the
   last loaded media segment at the offset it was originally found at,
   halting playback if it does not.  The next media segment to load MUST
   be the first media segment following the last-loaded segment in the
   Playlist.

   If the first segment to be played has been loaded and the Playlist
   file contains the EXT-X-MEDIA-SEQUENCE tag then the next media

Pantos & May             Expires April 18, 2013                [Page 27]
Internet-Draft             HTTP Live Streaming              October 2012

   segment to load SHALL be the one with the lowest sequence number that
   is greater than the sequence number of the last media segment loaded.

6.3.6.  Decrypting encrypted media segments

   If a Playlist file contains an EXT-X-KEY tag that specifies a Key
   file URI, the client MUST obtain that key file and use the key inside
   it to decrypt all media segments to which that EXT-X-KEY tag applies.

   A client MUST NOT attempt to use an EXT-X-KEY tag with an unsupported
   or unrecognized KEYFORMAT attribute.  A client SHOULD fail playback
   if the Playlist contains a media segment to which only EXT-X-KEY tags
   with unrecognized or unsupported KEYFORMAT attributes are applied.

   If the encryption METHOD is AES-128, AES-128 CBC decryption SHALL be
   applied to individual media segments.  The entire segment MUST be
   decrypted.  Cipher Block Chaining MUST NOT be applied across media
   segments.  The IV used for decryption MUST be either the sequence
   number of the media segment or the value of the IV attribute of the
   EXT-X-KEY tag, as described in Section 5.2.

   If the encryption METHOD is AES-128 and the media segment is part of
   an I-frame playlist (Section 3.4.12) special care MUST be taken in
   loading and decrypting the segment, because the resource identified
   by the URI is encrypted in 16-byte blocks from the start of the
   resource (offset 0).  The sub-range specified by the EXT-X-BYTERANGE
   tag MUST be widened to include the 16-byte blocks in which the
   beginning and end of the sub-range fall.  Next, it MUST be widened
   further to include the previous 16-byte block.  That range MUST be
   loaded and decrypted with AES-128 CBC using an arbitrary IV.  The
   decrypted segment will then be in the original (unwidened) sub-range.

   If the encryption METHOD is SAMPLE-AES, AES-128 decryption SHALL be
   applied to encrypted elementary streams within the media segment.
   The encryption format for H.264, AAC and AC-3 elementary streams is
   described by [SampleEnc].

   An EXT-X-KEY tag with a METHOD of NONE indicates that the media
   segments it applies to are not encrypted.

7.  Protocol version compatibility

   Clients and servers MUST implement protocol version 2 or higher to
   use:

   o  The IV attribute of the EXT-X-KEY tag.

Pantos & May             Expires April 18, 2013                [Page 28]
Internet-Draft             HTTP Live Streaming              October 2012

   Clients and servers MUST implement protocol version 3 or higher to
   use:

   o  Floating-point EXTINF duration values.

   Clients and servers MUST implement protocol version 4 or higher to
   use:

   o  The EXT-X-BYTERANGE tag.

   o  The EXT-X-I-FRAME-STREAM-INF tag.

   o  The EXT-X-I-FRAMES-ONLY tag.

   o  The EXT-X-MEDIA tag.

   o  The AUDIO and VIDEO attributes of the EXT-X-STREAM-INF tag.

   Clients and servers MUST implement protocol version 5 or higher to
   use:

   o  The KEYFORMAT and KEYFORMATVERSIONS attributes of the EXT-X-KEY
      tag.

   o  The EXT-X-MAP tag.

8.  Examples

8.1.  Introduction

   This section contains several example Playlist files.

8.2.  Simple Playlist file

   #EXTM3U
   #EXT-X-VERSION:3
   #EXT-X-TARGETDURATION:5220
   #EXTINF:5219.2,
   http://media.example.com/entire.ts
   #EXT-X-ENDLIST

Pantos & May             Expires April 18, 2013                [Page 29]
Internet-Draft             HTTP Live Streaming              October 2012

8.3.  Sliding Window Playlist, using HTTPS

   #EXTM3U
   #EXT-X-VERSION:3
   #EXT-X-TARGETDURATION:8
   #EXT-X-MEDIA-SEQUENCE:2680

   #EXTINF:7.975,
   https://priv.example.com/fileSequence2680.ts
   #EXTINF:7.941,
   https://priv.example.com/fileSequence2681.ts
   #EXTINF:7.975,
   https://priv.example.com/fileSequence2682.ts

8.4.  Playlist file with encrypted media segments

   #EXTM3U
   #EXT-X-VERSION:3
   #EXT-X-MEDIA-SEQUENCE:7794
   #EXT-X-TARGETDURATION:15

   #EXT-X-KEY:METHOD=AES-128,URI="https://priv.example.com/key.php?r=52"

   #EXTINF:2.833,
   http://media.example.com/fileSequence52-A.ts
   #EXTINF:15.0,
   http://media.example.com/fileSequence52-B.ts
   #EXTINF:13.333,
   http://media.example.com/fileSequence52-C.ts

   #EXT-X-KEY:METHOD=AES-128,URI="https://priv.example.com/key.php?r=53"

   #EXTINF:15.0,
   http://media.example.com/fileSequence53-A.ts

8.5.  Variant Playlist file

   #EXTM3U
   #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1280000
   http://example.com/low.m3u8
   #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2560000
   http://example.com/mid.m3u8
   #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=7680000
   http://example.com/hi.m3u8
   #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=65000,CODECS="mp4a.40.5"
   http://example.com/audio-only.m3u8

Pantos & May             Expires April 18, 2013                [Page 30]
Internet-Draft             HTTP Live Streaming              October 2012

8.6.  Variant Playlist with I-Frames

   In this example, the PROGRAM-ID attributes have been left out:

   #EXTM3U
   #EXT-X-STREAM-INF:BANDWIDTH=1280000
   low/audio-video.m3u8
   #EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=86000,URI="low/iframe.m3u8"
   #EXT-X-STREAM-INF:BANDWIDTH=2560000
   mid/audio-video.m3u8
   #EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=150000,URI="mid/iframe.m3u8"
   #EXT-X-STREAM-INF:BANDWIDTH=7680000
   hi/audio-video.m3u8
   #EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=550000,URI="hi/iframe.m3u8"
   #EXT-X-STREAM-INF:BANDWIDTH=65000,CODECS="mp4a.40.5"
   audio-only.m3u8

8.7.  Variant Playlist with Alternative audio

   In this example, the PROGRAM-ID attributes have been left out.  The
   CODECS attributes have been condensed for space.  A '\' is used to
   indicate that the tag continues on the following line with whitespace
   removed:

   #EXTM3U
   #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",NAME="English", \
      DEFAULT=YES,AUTOSELECT=YES,LANGUAGE=&

   Copyright (c) 2019 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
   (https://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.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   3
   2.  Design of the Data Model  . . . . . . . . . . . . . . . . . .   3
     2.1.  IS-IS Configuration . . . . . . . . . . . . . . . . . . .   9
     2.2.  Multitopology  Parameters . . . . . . . . . . . . . . . .  10
     2.3.  Per-Level Parameters  . . . . . . . . . . . . . . . . . .  10
     2.4.  Per-Interface Parameters  . . . . . . . . . . . . . . . .  12
     2.5.  Authentication  Parameters  . . . . . . . . . . . . . . .  19
     2.6.  IGP/LDP  synchronization  . . . . . . . . . . . . . . . .  20
     2.7.  ISO parameters  . . . . . . . . . . . . . . . . . . . . .  20
     2.8.  IP FRR  . . . . . . . . . . . . . . . . . . . . . . . . .  20
     2.9.  Operational States  . . . . . . . . . . . . . . . . . . .  21
   3.  RPC Operations  . . . . . . . . . . . . . . . . . . . . . . .  21
   4.  Notifications . . . . . . . . . . . . . . . . . . . . . . . .  21
   5.  Interaction with Other YANG  Modules  . . . . . . . . . . . .  23
   6.  IS-IS YANG Module . . . . . . . . . . . . . . . . . . . . . .  23
   7.  Security Considerations . . . . . . . . . . . . . . . . . . . 104
   8.  Contributors  . . . . . . . . . . . . . . . . . . . . . . . . 105
   9.  IANA Considerations . . . . . . . . . . . . . . . . . . . . . 105
   10. Change log for ietf-isis  YANG module . . . . . . . . . . . . 105
     10.1.  From version -29 to version  -30 . . . . . . . . . . . . 105
     10.2.  From version -28 to version  -29 . . . . . . . . . . . . 106
     10.3.  From version -27 to version  -28 . . . . . . . . . . . . 106
     10.4.  From version -26 to version  -27 . . . . . . . . . . . . 106
     10.5.  From version -25 to version  -26 . . . . . . . . . . . . 106
     10.6.  From version -24 to version  -25 . . . . . . . . . . . . 106
     10.7.  From version -22 to version  -24 . . . . . . . . . . . . 107
     10.8.  From version -21 to version  -22 . . . . . . . . . . . . 107
     10.9.  From version -20 to version  -21 . . . . . . . . . . . . 107
     10.10. From version -19 to version  -20 . . . . . . . . . . . . 108
     10.11. From version -18 to version  -19 . . . . . . . . . . . . 108
     10.12. From version -17 to version  -18 . . . . . . . . . . . . 108

Litkowski, et al.         Expires July 25, 2019                 [Page 2]
Internet-Draft                  isis-cfg                    January 2019

     10.13. From version -16 to version  -17 . . . . . . . . . . . . 108
     10.14. From version -15 to version  -16 . . . . . . . . . . . . 108
     10.15. From version -14 to version  -15 . . . . . . . . . . . . 108
     10.16. From version -13 to  version -14 . . . . . . . . . . . . 109
     10.17. From version -12 to  version -13 . . . . . . . . . . . . 109
     10.18. From version -09 to  version -12 . . . . . . . . . . . . 109
     10.19. From version -08 to  version -09 . . . . . . . . . . . . 109
     10.20. From version -07 to  version -08 . . . . . . . . . . . . 110
     10.21. From version -05 to  version -07 . . . . . . . . . . . . 110
     10.22. From version -03 to  version -05 . . . . . . . . . . . . 110
     10.23. From version -02 to  version -03 . . . . . . . . . . . . 110
     10.24. From version -01 to  version -02 . . . . . . . . . . . . 111
     10.25. From version -00 to  version -01 . . . . . . . . . . . . 111
   11. References  . . . . . . . . . . . . . . . . . . . . . . . . . 112
     11.1.  Normative References . . . . . . . . . . . . . . . . . . 112
     11.2.  Informative References . . . . . . . . . . . . . . . . . 115
   Appendix A.  Example of IS-IS configuration  in XML . . . . . . . 116
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . . 118

1.  Introduction

   This document defines a YANG ([RFC7950]) data model for IS-IS routing
   protocol.

   The data model covers configuration of an IS-IS routing protocol
   instance as well as operational states.

   A simplified tree representation of the data model is presented in
   Section 2.  Tree diagrams used in this document follow the notation
   defined in [RFC8340].

   The module is designed as per NMDA (Network Management Datastore
   Architecture) [RFC8342].

2.  Design of the Data Model

   The IS-IS YANG module augments the "control-plane-protocol" list in
   ietf-routing module (defined in [RFC8349]) with specific IS-IS
   parameters.

   The figure below describes the overall structure of the isis YANG
   module:

 module: ietf-isis
   augment /rt:routing/rt:ribs/rt:rib/rt:routes/rt:route:
     +--ro metric?       uint32
     +--ro tag*          uint64

Litkowski, et al.         Expires July 25, 2019                 [Page 3]
Internet-Draft                  isis-cfg                    January 2019

     +--ro route-type?   enumeration
   augment /if:interfaces/if:interface:
     +--rw clns-mtu?   uint16
   augment
 /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol:
     +--rw isis
        +--rw enable?                   boolean {admin-control}?
        +--rw level-type?               level
        +--rw system-id?                system-id
        +--rw maximum-area-addresses?   uint8 {maximum-area-addresses}?
        +--rw area-address*             area-address
        +--rw lsp-mtu?                  uint16
        +--rw lsp-lifetime?             uint16
        +--rw lsp-refresh?              rt-types:timer-value-seconds16
 {lsp-refresh}?
        +--rw poi-tlv?                  boolean {poi-tlv}?
        +--rw graceful-restart {graceful-restart}?
        |  +--rw enable?             boolean
        |  +--rw restart-interval?   rt-types:timer-value-seconds16
        |  +--rw helper-enable?      boolean
        +--rw nsr {nsr}?
        |  +--rw enable?   boolean
        +--rw node-tags {node-tag}?
        |  +--rw node-tag* [tag]
        |        ...
        +--rw metric-type
        |  +--rw value?     enumeration
        |  +--rw level-1
        |  |     ...
        |  +--rw level-2
        |        ...
        +--rw default-metric
        |  +--rw value?     wide-metric
        |  +--rw level-1
        |  |     ...
        |  +--rw level-2
        |        ...
        +--rw auto-cost {auto-cost}?
        |  +--rw enable?                boolean
        |  +--rw reference-bandwidth?   uint32
        +--rw authentication
        |  +--rw (authentication-type)?
        |  |     ...
        |  +--rw level-1
        |  |     ...
        |  +--rw level-2
        |        ...
        +--rw address-families {nlpid-control}?

Litkowski, et al.         Expires July 25, 2019                 [Page 4]
Internet-Draft                  isis-cfg                    January 2019

        |  +--rw address-family-list* [address-family]
        |        ...
        +--rw mpls
        |  +--rw te-rid {te-rid}?
        |  |     ...
        |  +--rw ldp
        |        ...
        +--rw spf-control
        |  +--rw paths?            uint16 {max-ecmp}?
        |  +--rw ietf-spf-delay {ietf-spf-delay}?
        |        ...
        +--rw fast-reroute {fast-reroute}?
        |  +--rw lfa {lfa}?
        +--rw preference
        |  +--rw (granularity)?
        |        ...
        +--rw overload
        |  +--rw status?   boolean
        +--rw overload-max-metric {overload-max-metric}?
        |  +--rw timeout?   rt-types:timer-value-seconds16
        +--ro spf-log
        |  +--ro event* [id]
        |        ...
        +--ro lsp-log
        |  +--ro event* [id]
        |        ...
        +--ro hostnames
        |  +--ro hostname* [system-id]
        |        ...
        +--ro database
        |  +--ro levels* [level]
        |        ...
        +--ro local-rib
        |  +--ro route* [prefix]
        |        ...
        +--ro system-counters
        |  +--ro level* [level]
        |        ...
        +--ro protected-routes
        |  +--ro address-family-stats* [address-family prefix alternate]
        |        ...
        +--ro unprotected-routes
        |  +--ro address-family-stats* [address-family prefix]
        |        ...
        +--ro protection-statistics* [frr-protection-method]
        |  +--ro frr-protection-method    string
        |  +--ro address-family-stats* [address-family]
        |        ...

Litkowski, et al.         Expires July 25, 2019                 [Page 5]
Internet-Draft                  isis-cfg                    January 2019

        +--rw topologies {multi-topology}?
        |  +--rw topology* [name]
        |        ...
        +--rw interfaces
           +--rw interface* [name]
                 ...

   rpcs:
     +---x clear-adjacency
     |  +---w input
     |     +---w routing-protocol-instance-name    ->
 /rt:routing/control-plane-protocols/control-plane-protocol/name
     |     +---w level?                            level
     |     +---w interface?                        if:interface-ref
     +---x clear-database
        +---w input
           +---w routing-protocol-instance-name    ->
 /rt:routing/control-plane-protocols/control-plane-protocol/name
           +---w level?                            level

   notifications:
     +---n database-overload
     |  +--ro routing-protocol-name?   ->
 /rt:routing/control-plane-protocols/control-plane-protocol/name
     |  +--ro isis-level?              level
     |  +--ro overload?                enumeration
     +---n lsp-too-large
     |  +--ro routing-protocol-name?   ->
 /rt:routing/control-plane-protocols/control-plane-protocol/name
     |  +--ro isis-level?              level
     |  +--ro interface-name?          if:interface-ref
     |  +--ro interface-level?         level
     |  +--ro extended-circuit-id?     extended-circuit-id
     |  +--ro pdu-size?                uint32
     |  +--ro lsp-id?                  lsp-id
     +---n if-state-change
     |  +--ro routing-protocol-name?   ->
 /rt:routing/control-plane-protocols/control-plane-protocol/name
     |  +--ro isis-level?              level
     |  +--ro interface-name?          if:interface-ref
     |  +--ro interface-level?         level
     |  +--ro extended-circuit-id?     extended-circuit-id
     |  +--ro state?                   if-state-type
     +---n corrupted-lsp-detected
     |  +--ro routing-protocol-name?   ->
 /rt:routing/control-plane-protocols/control-plane-protocol/name
     |  +--ro isis-level?              level
     |  +--ro lsp-id?                  lsp-id

Litkowski, et al.         Expires July 25, 2019                 [Page 6]
Internet-Draft                  isis-cfg                    January 2019

     +---n attempt-to-exceed-max-sequence
     |  +--ro routing-protocol-name?   ->
 /rt:routing/control-plane-protocols/control-plane-protocol/name
     |  +--ro isis-level?              level
     |  +--ro lsp-id?                  lsp-id
     +---n id-len-mismatch
     |  +--ro routing-protocol-name?   ->
 /rt:routing/control-plane-protocols/control-plane-protocol/name
     |  +--ro isis-level?              level
     |  +--ro interface-name?          if:interface-ref
     |  +--ro interface-level?         level
     |  +--ro extended-circuit-id?     extended-circuit-id
     |  +--ro pdu-field-len?           uint8
     |  +--ro raw-pdu?                 binary
     +---n max-area-addresses-mismatch
     |  +--ro routing-protocol-name?   ->
 /rt:routing/control-plane-protocols/control-plane-protocol/name
     |  +--ro isis-level?              level
     |  +--ro interface-name?          if:interface-ref
     |  +--ro interface-level?         level
     |  +--ro extended-circuit-id?     extended-circuit-id
     |  +--ro max-area-addresses?      uint8
     |  +--ro raw-pdu?                 binary
     +---n own-lsp-purge
     |  +--ro routing-protocol-name?   ->
 /rt:routing/control-plane-protocols/control-plane-protocol/name
     |  +--ro isis-level?              level
     |  +--ro interface-name?          if:interface-ref
     |  +--ro interface-level?         level
     |  +--ro extended-circuit-id?     extended-circuit-id
     |  +--ro lsp-id?                  lsp-id
     +---n sequence-number-skipped
     |  +--ro routing-protocol-name?   ->
 /rt:routing/control-plane-protocols/control-plane-protocol/name
     |  +--ro isis-level?              level
     |  +--ro interface-name?          if:interface-ref
     |  +--ro interface-level?         level
     |  +--ro extended-circuit-id?     extended-circuit-id
     |  +--ro lsp-id?                  lsp-id
     +---n authentication-type-failure
     |  +--ro routing-protocol-name?   ->
 /rt:routing/control-plane-protocols/control-plane-protocol/name
     |  +--ro isis-level?              level
     |  +--ro interface-name?          if:interface-ref
     |  +--ro interface-level?         level
     |  +--ro extended-circuit-id?     extended-circuit-id
     |  +--ro raw-pdu?                 binary
     +---n authentication-failure

Litkowski, et al.         Expires July 25, 2019                 [Page 7]
Internet-Draft                  isis-cfg                    January 2019

     |  +--ro routing-protocol-name?   ->
 /rt:routing/control-plane-protocols/control-plane-protocol/name
     |  +--ro isis-level?              level
     |  +--ro interface-name?          if:interface-ref
     |  +--ro interface-level?         level
     |  +--ro extended-circuit-id?     extended-circuit-id
     |  +--ro raw-pdu?                 binary
     +---n version-skew
     |  +--ro routing-protocol-name?   ->
 /rt:routing/control-plane-protocols/control-plane-protocol/name
     |  +--ro isis-level?              level
     |  +--ro interface-name?          if:interface-ref
     |  +--ro interface-level?         level
     |  +--ro extended-circuit-id?     extended-circuit-id
     |  +--ro protocol-version?        uint8
     |  +--ro raw-pdu?                 binary
     +---n area-mismatch
     |  +--ro routing-protocol-name?   ->
 /rt:routing/control-plane-protocols/control-plane-protocol/name
     |  +--ro isis-level?              level
     |  +--ro interface-name?          if:interface-ref
     |  +--ro interface-level?         level
     |  +--ro extended-circuit-id?     extended-circuit-id
     |  +--ro raw-pdu?                 binary
     +---n rejected-adjacency
     |  +--ro routing-protocol-name?   ->
 /rt:routing/control-plane-protocols/control-plane-protocol/name
     |  +--ro isis-level?              level
     |  +--ro interface-name?          if:interface-ref
     |  +--ro interface-level?         level
     |  +--ro extended-circuit-id?     extended-circuit-id
     |  +--ro raw-pdu?                 binary
     |  +--ro reason?                  string
     +---n protocols-supported-mismatch
     |  +--ro routing-protocol-name?   ->
 /rt:routing/control-plane-protocols/control-plane-protocol/name
     |  +--ro isis-level?              level
     |  +--ro interface-name?          if:interface-ref
     |  +--ro interface-level?         level
     |  +--ro extended-circuit-id?     extended-circuit-id
     |  +--ro raw-pdu?                 binary
     |  +--ro protocols*               uint8
     +---n lsp-error-detected
     |  +--ro routing-protocol-name?   ->
 /rt:routing/control-plane-protocols/control-plane-protocol/name
     |  +--ro isis-level?              level
     |  +--ro interface-name?          if:interface-ref
     |  +--ro interface-level?         level

Litkowski, et al.         Expires July 25, 2019                 [Page 8]
Internet-Draft                  isis-cfg                    January 2019

     |  +--ro extended-circuit-id?     extended-circuit-id
     |  +--ro lsp-id?                  lsp-id
     |  +--ro raw-pdu?                 binary
     |  +--ro error-offset?            uint32
     |  +--ro tlv-type?                uint8
     +---n adjacency-state-change
     |  +--ro routing-protocol-name?   ->
 /rt:routing/control-plane-protocols/control-plane-protocol/name
     |  +--ro isis-level?              level
     |  +--ro interface-name?          if:interface-ref
     |  +--ro interface-level?         level
     |  +--ro extended-circuit-id?     extended-circuit-id
     |  +--ro neighbor?                string
     |  +--ro neighbor-system-id?      system-id
     |  +--ro state?                   adj-state-type
     |  +--ro reason?                  string
     +---n lsp-received
     |  +--ro routing-protocol-name?   -"en", \
      URI="main/english-audio.m3u8"
   #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",NAME="Deutsche", \
      DEFAULT=NO,AUTOSELECT=YES,LANGUAGE="de", \
      URI="main/german-audio.m3u8"
   #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",NAME="Commentary", \
      DEFAULT=NO,AUTOSELECT=NO,URI="commentary/audio-only.m3u8"
   #EXT-X-STREAM-INF:BANDWIDTH=1280000,CODECS="...",AUDIO="aac"
   low/video-only.m3u8
   #EXT-X-STREAM-INF:BANDWIDTH=2560000,CODECS="...",AUDIO="aac"
   mid/video-only.m3u8
   #EXT-X-STREAM-INF:BANDWIDTH=7680000,CODECS="...",AUDIO="aac"
   hi/video-only.m3u8
   #EXT-X-STREAM-INF:BANDWIDTH=65000,CODECS="mp4a.40.5",AUDIO="aac"
   main/english-audio.m3u8

8.8.  Variant Playlist with Alternative video

   In this example, the PROGRAM-ID attributes have been left out.  The
   CODECS attributes have been condensed for space.  A '\' is used to
   indicate that the tag continues on the following line with whitespace
   removed:

Pantos & May             Expires April 18, 2013                [Page 31]
Internet-Draft             HTTP Live Streaming              October 2012

   #EXTM3U
   #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="low",NAME="Main", \
      DEFAULT=YES,URI="low/main/audio-video.m3u8"
   #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="low",NAME="Centerfield", \
      DEFAULT=NO,URI="low/centerfield/audio-video.m3u8"
   #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="low",NAME="Dugout", \
      DEFAULT=NO,URI="low/dugout/audio-video.m3u8"

   #EXT-X-STREAM-INF:BANDWIDTH=1280000,CODECS="...",VIDEO="low"
   low/main/audio-video.m3u8

   #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="mid",NAME="Main", \
      DEFAULT=YES,URI="mid/main/audio-video.m3u8"
   #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="mid",NAME="Centerfield", \
      DEFAULT=NO,URI="mid/centerfield/audio-video.m3u8"
   #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="mid",NAME="Dugout", \
      DEFAULT=NO,URI="mid/dugout/audio-video.m3u8"

   #EXT-X-STREAM-INF:BANDWIDTH=2560000,CODECS="...",VIDEO="mid"
   mid/main/audio-video.m3u8

   #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="hi",NAME="Main", \
      DEFAULT=YES,URI="hi/main/audio-video.m3u8"
   #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="hi",NAME="Centerfield", \
      DEFAULT=NO,URI="hi/centerfield/audio-video.m3u8"
   #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="hi",NAME="Dugout", \
      DEFAULT=NO,URI="hi/dugout/audio-video.m3u8"

   #EXT-X-STREAM-INF:BANDWIDTH=7680000,CODECS="...",VIDEO="hi"
   hi/main/audio-video.m3u8

   #EXT-X-STREAM-INF:BANDWIDTH=65000,CODECS="mp4a.40.5"
   main/audio-only.m3u8

9.  Contributors

   Significant contributions to the design of this protocol were made by
   Jim Batson, David Biderman, Bill May, Roger Pantos, and Alan Tseng.

10.  IANA Considerations

   This memo requests that the following MIME type [RFC2046] be
   registered with the IANA:

   Type name: "application"

Pantos & May             Expires April 18, 2013                [Page 32]
Internet-Draft             HTTP Live Streaming              October 2012

   Subtype name: "vnd.apple.mpegurl"

   Required parameters: (none)

   Optional parameters: (none)

   Encoding considerations: encoded as text.  See Section 3 for more
   information.

   Security considerations: See Section 11.

   Compression: this media type does not employ compression.

   Interoperability considerations: There are no byte-ordering issues,
   since files are 7- or 8-bit text.  Applications could encounter
   unrecognized tags, which SHOULD be ignored.

   Published specification: see Section 3.

   Applications that use this media type: Multimedia applications such
   as the iPhone media player in iOS 3.0 and later and QuickTime Player
   in Mac OS X version 10.6 and later.

   Additional information: files begin with the magic number #EXTM3U.
   Filenames normally end with .m3u8 or .m3u (see Section 3).  No
   Macintosh file type codes have been registered.

   Person & email address to contact for further information: David
   Singer, singer AT apple.com.

   Intended usage: LIMITED USE

   Restrictions on usage: (none)

   Author: Roger Pantos

   Change Controller: David Singer

11.  Security Considerations

   Since the protocol generally uses HTTP to transfer data, most of the
   same security considerations apply.  See section 15 of RFC 2616
   [RFC2616].

   Media file parsers are typically subject to "fuzzing" attacks.
   Clients SHOULD take care when parsing segments received from a server
   that non-compliant segments are rejected.

Pantos & May             Expires April 18, 2013                [Page 33]
Internet-Draft             HTTP Live Streaming              October 2012

   Playlist files contain URIs, which clients will use to make network
   requests of arbitrary entities.  Clients SHOULD range-check responses
   to prevent buffer overflows.  See also the Security Considerations
   section of RFC 3986 [RFC3986].

   Clients SHOULD load resources identified by URI lazily to avoid
   contributing to denial-of-service attacks.

   HTTP requests often include session state ("cookies>
 /rt:routing/control-plane-protocols/control-plane-protocol/name
     |  +--ro isis-level?              level
     |  +--ro interface-name?          if:interface-ref
     |  +--ro interface-level?         level
     |  +--ro extended-circuit-id?     extended-circuit-id
     |  +--ro lsp-id?                  lsp-id
     |  +--ro sequence?                uint32
     |  +--ro received-timestamp?      yang:timestamp
     |  +--ro neighbor-system-id?      system-id
     +---n lsp-generation
        +--ro routing-protocol-name?   ->
 /rt:routing/control-plane-protocols/control-plane-protocol/name
        +--ro isis-level?              level
        +--ro lsp-id?                  lsp-id
        +--ro sequence?                uint32
        +--ro send-timestamp?          yang:timestamp

2.1.  IS-IS Configuration

   The IS-IS configuration is divided in:

   o  Global parameters.

   o  Per interface configuration (see Section 2.4).

   Additional modules may be created to support any additional
   parameters.  These additional modules MUST augment the ietf-isis
   module.

Litkowski, et al.         Expires July 25, 2019                 [Page 9]
Internet-Draft                  isis-cfg                    January 2019

   The model implements features, thus some of the configuration
   statement becomes optional.  As an example, the ability to control
   the administrative state of a particular IS-IS instance is optional.
   By advertising the feature "admin-control", a device communicates to
   the client that it supports the ability to shutdown a particular IS-
   IS instance.

   The global configuration contains usual IS-IS parameters such as lsp-
   mtu, lsp-lifetime, lsp-refresh, default-metric...

2.2.  Multitopology Parameters

   The model supports multitopology (MT) IS-IS as defined in [RFC5120].

   The "topologies" container is used to enable support of MT
   extensions.

   The "name" used in the topology list should refer to an existing RIB
   of the device.

   Some specific parameters could be defined on a per topology basis
   both at global level and at interface level: for example, an
   interface metric can be defined per topology.

   Multiple address families (like IPv4 or IPv6) can also be activated
   within the default topology.  This can be achieved using the "afs"
   container (requiring "nlpid-control" feature to be advertised).

2.3.  Per-Level Parameters

   Some parameters allow a per level configuration.  In this case, the
   parameter is modeled as a container with three configuration
   locations:

   o  a top level container: corresponds to level-1-2, so the
      configuration applies to both levels.

   o  a level-1 container: corresponds to level-1 specific parameters.

   o  a level-2 container: corresponds to level-2 specific parameters.

               +--rw priority
               |  +--rw value?     uint8
               |  +--rw level-1
               |  |  +--rw value?   uint8
               |  +--rw level-2
               |     +--rw value?   uint8

Litkowski, et al.         Expires July 25, 2019                [Page 10]
Internet-Draft                  isis-cfg                    January 2019

   Example:

           <priority>
               <value>250</value>
               <level-1>
                   <value>100</value>
               </level-1>
               <level-2>
                   <value>200</value>
               </level-2>
           </priority>

   An implementation SHOULD prefer a level specific parameter over a
   level-all parameter.  As example, if the priority is 100 for the
   level-1, 200 for the level-2 and 250 for the top level configuration,
   the implementation should use 100 for the level-1 and 200 for the
   level-2.

   Some parameters like "overload bit" and "route preference" are not
   modeled to support a per level configuration.  If an implementation
   supports per level configuration for such parameter, this
   implementation SHOULD augment the current model by adding both
   level-1 and level-2 containers and SHOULD reuse existing
   configuration groupings.

   Example of augmentation:

Litkowski, et al.         Expires July 25, 2019                [Page 11]
Internet-Draft                  isis-cfg                    January 2019

   augment "/rt:routing/" +
           "rt:control-plane-protocols/rt:control-plane-protocol"+
           "/isis:isis/isis:overload" {
           when "rt:type = 'isis:isis'" {
             description
              "This augment IS-IS routing protocol when used";
           }
           description
             "This augments IS-IS overload configuration
              with per level configuration.";

           container level-1 {
             uses isis:overload-global-cfg;
             description
               "Level 1 configuration.";
           }
           container level-2 {
             uses isis:overload-global-cfg;
             description
               "Level 2 configuration.";
           }
   }

   If an implementation does not support per level configuration for a
   parameter modeled with per level configuration, the implementation
   SHOULD advertise a deviation to announce the non support of the
   level-1 and level-2 containers.

   Finally, if an implementation supports per level configuration but
   does not support the level-1-2 configuration, it SHOULD also
   advertise a deviation.

2.4.  Per-Interface Parameters

   The per-interface section of the IS-IS instance describes the
   interface specific parameters.

   The interface is modeled as a reference to an existing interface
   defined in the "ietf-interfaces" YANG model ([RFC8343].

   Each interface has some interface-specific parameters that may have a
   different per level value as described in previous section.  An
   interface-specific parameter always override an IS-IS global
   parameter.

   Some parameters like hello-padding are defined as containers to allow
   easy extension by vendor specific modules.

Litkowski, et al.         Expires July 25, 2019                [Page 12]
Internet-Draft                  isis-cfg                    January 2019

        +--rw interfaces
           +--rw interface* [name]
              +--rw name                       if:interface-ref
              +--rw level-type?                level
              +--rw lsp-pacing-interval?
 rt-types:timer-value-milliseconds
              +--rw lsp-retransmit-interval?
 rt-types:timer-value-seconds16
              +--rw passive?                   boolean
              +--rw csnp-interval?
 rt-types:timer-value-seconds16
              +--rw hello-padding
              |  +--rw enable?   boolean
              +--rw mesh-group-enable?         mesh-group-state
              +--rw mesh-group?                uint8
              +--rw interface-type?            interface-type
              +--rw enable?                    boolean {admin-control}?
              +--rw tag*                       uint32 {prefix-tag}?
              +--rw tag64*                     uint64 {prefix-tag64}?
              +--rw node-flag?                 boolean {node-flag}?
              +--rw hello-authentication
              |  +--rw (authentication-type)?
              |  |  +--:(key-chain) {key-chain}?
              |  |  |  +--rw key-chain?          key-chain:key-chain-ref
              |  |  +--:(password)
              |  |     +--rw key?                string
              |  |     +--rw crypto-algorithm?   identityref
              |  +--rw level-1
              |  |  +--rw (authentication-type)?
              |  |     +--:(key-chain) {key-chain}?
              |  |     |  +--rw key-chain?
 key-chain:key-chain-ref
              |  |     +--:(password)
              |  |        +--rw key?                string
              |  |        +--rw crypto-algorithm?   identityref
              |  +--rw level-2
              |     +--rw (authentication-type)?
              |        +--:(key-chain) {key-chain}?
              |        |  +--rw key-chain?
 key-chain:key-chain-ref
              |        +--:(password)
              |           +--rw key?                string
              |           +--rw crypto-algorithm?   identityref
              +--rw hello-interval
              |  +--rw value?     rt-types:timer-value-seconds16
              |  +--rw level-1
              |  |  +--rw value?   rt-types:timer-value-seconds16
              |  +--rw level-2

Litkowski, et al.         Expires July 25, 2019                [Page 13]
Internet-Draft                  isis-cfg                    January 2019

              quot;), which may
   contain private user data.  Implementations MUST follow cookie
   restriction and expiry rules specified by RFC 6265 [RFC6265].  See
   also the Security Considerations section of RFC 6265, and RFC 2964
   [RFC2964].

   Encryption keys are specified by URI.  The delivery of these keys
   SHOULD be secured by a mechanism such as HTTP over TLS [RFC5246]
   (formerly SSL) in conjunction with a secure realm or a session
   cookie.

12.  References

12.1.  Normative References

   [AC_3]     Advanced Television Systems Committee, "ATSC Standard:
              A/52:2010: Digital Audio Compression (AC-3) (E-AC-3)
              Standard", November 2010,
              <http://www.atsc.org/cms/standards/a_52-2010.pdf>.

   [AES_128]  U.S. Department of Commerce/National Institute of
              Standards and Technology, "Advanced Encryption Standard
              (AES), FIPS PUB 197", November 2001, <http://
              csrc.nist.gov/publications/fips/fips197/fips-197.pdf>.

   [H_264]    International Telecommunications Union, "Advanced video
              coding for generic audiovisual services", January 2012,
              <http://www.itu.int/rec/T-REC-H.264>.

   [ISO_11172]
              International Organization for Standardization, "ISO/IEC
              International Standard 11172-1; Coding of moving pictures
              and associated audio for digital storage media -- Part 1:
              Systems", 1993,
              <http://www.iso.org/iso/catalogue_detail?csnumber=19180>.

   [ISO_13818]
              International Organization for Standardization, "ISO/IEC
              International Standard 13818; Generic coding of moving

Pantos & May             Expires April 18, 2013                [Page 34]
Internet-Draft             HTTP Live Streaming              October 2012

              pictures and associated audio information", October 2007,
              <http://www.iso.org/iso/catalogue_detail?csnumber=44169>.

   [ISO_14496]
              International Organization for Standardization, "ISO/IEC
              14496-3:2009 Information technology -- Coding of audio-
              visual objects -- Part 3: Audio", 2009,
              <http://www.iso.org/iso/catalogue_detail?csnumber=53943>.

   [ISO_8601]
              International Organization for Standardization, "ISO/IEC
              International Standard 8601:2004; Data elements and
              interchange formats -- Information interchange --
              Representation of dates and times", December 2004,
              <http://www.iso.org/iso/catalogue_detail?csnumber=40874>.

   [RFC2046]  Freed, N. and N. Borenstein, "Multipurpose Internet Mail
              Extensions (MIME) Part Two: Media Types", RFC 2046,
              November 1996.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC2616]  Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,
              Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext
              Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.

   [RFC2964]  Moore, K. and N. Freed, "Use of HTTP State Management",
              BCP 44, RFC 2964, October 2000.

   [RFC3629]  Yergeau, F., "UTF-8, a transformation format of ISO
              10646", STD 63, RFC 3629, November 2003.

   [RFC3986]  Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
              Resource Identifier (URI): Generic Syntax", STD 66,
              RFC 3986, January 2005.

   [RFC5246]  Dierks, T. and E. Rescorla, "The Transport Layer Security
              (TLS) Protocol Version 1.2", RFC 5246, August 2008.

   [RFC5646]  Phillips, A. and M. Davis, "Tags for Identifying
              Languages", BCP 47, RFC 5646, September 2009.

   [RFC5652]  Housley, R., "Cryptographic Message Syntax (CMS)", STD 70,
              RFC 5652, September 2009.

   [RFC6265]  Barth, A., "HTTP State Management Mechanism", RFC 6265,
              April 2011.

Pantos & May             Expires April 18, 2013                [Page 35]
Internet-Draft             HTTP Live Streaming              October 2012

   [RFC6381]  Gellens, R., Singer, D., and P. Frojdh, "The 'Codecs' and
              'Profiles' Parameters for "Bucket" Media Types", RFC 6381,
              August 2011.

   [US_ASCII]
              American National Standards Institute, "ANSI X3.4-1986,
              Information Systems -- Coded Character Sets 7-Bit American
              National Standard Code for Information Interchange (7-Bit
              ASCII)", December 1986.

12.2.  Informative References

   [ID3]      ID3.org, "The ID3 audio file data tagging format",
              <http://www.id3.org/Developer_Information>.

   [M3U]      Nullsoft, Inc., "The M3U Playlist format, originally
              invented for the Winamp media player",
              <http://wikipedia.org/wiki/M3U>.

   [SampleEnc]
              Apple Inc., "MPEG-2 Stream Encryption Format for HTTP Live
              Streaming", <https://developer.apple.com/library/ios/
              documentation/AudioVideo/Conceptual/
              HLS_Sample_Encryption/>.

   [UTI]      Apple Inc., "Uniform Type Identifier", <http://
              developer.apple.com/library/ios/#documentation/general/
              conceptual/DevPedia-CocoaCore/UniformTypeIdentifier.html>.

   [WebVTT]   World Wide Web Consortium (W3C), "WebVTT Standard",
              September 2012, <http://dev.w3.org/html5/webvtt/>.

Authors' Addresses

   Roger Pantos (editor)
   Apple Inc.
   Cupertino, California
   United States

   Email: http-live-streaming-review@group.apple.com

Pantos & May             Expires April 18, 2013                [Page 36]
Internet-Draft             HTTP Live Streaming              October 2012

   William May, Jr.
   Apple Inc.
   Cupertino, California
   United States

   Email: http-live-streaming-review@group.apple.com

Pantos & May             Expires April 18, 2013                [Page 37]