draft-ietf-fecframe-config-signaling-06.txt   draft-ietf-fecframe-config-signaling-07.txt 
FECFRAME Working Group Rajiv Asati FECFRAME Working Group Rajiv Asati
Internet Draft Cisco Systems Internet Draft Cisco Systems
Intended status: Experimental Intended status: Informational
Expires: July 2011 Expires: July 2012
September 24, 2011 February 21, 2012
Methods to convey FEC Framework Configuration Information Methods to convey FEC Framework Configuration Information
draft-ietf-fecframe-config-signaling-06 draft-ietf-fecframe-config-signaling-07.txt
Abstract Abstract
FEC Framework document [FECARCH] defines the FEC Framework FEC Framework document [RFC6363] defines the FEC Framework
Configuration Information necessary for the FEC framework operation. Configuration Information necessary for the FEC framework operation.
This document describes how to use existing signaling protocols to This document describes using existing signaling protocols such as
determine and dynamically communicate the Configuration information Session Announcement Protocol (SAP), Session Initiation Protocol
between sender(s) and receiver(s). (SIP), Real Time Stream Protocol (RTSP) etc. to determine and
dynamically communicate the Configuration information between
sender(s) and receiver(s).
Status of this Memo Status of this Memo
This Internet-Draft is submitted to IETF in full conformance with This Internet-Draft is submitted to IETF in full conformance with
the provisions of BCP 78 and BCP 79. This document may contain the provisions of BCP 78 and BCP 79. This document may contain
material from IETF Documents or IETF Contributions published or made material from IETF Documents or IETF Contributions published or made
publicly available before November 10, 2008. The person(s) publicly available before November 10, 2008. The person(s)
controlling the copyright in some of this material may not have controlling the copyright in some of this material may not have
granted the IETF Trust the right to allow modifications of such granted the IETF Trust the right to allow modifications of such
material outside the IETF Standards Process. Without obtaining an material outside the IETF Standards Process. Without obtaining an
skipping to change at page 2, line 4 skipping to change at page 2, line 6
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet- other groups may also distribute working documents as Internet-
Drafts. Drafts.
Internet-Drafts are draft documents valid for a maximum of six Internet-Drafts are draft documents valid for a maximum of six
months and may be updated, replaced, or obsoleted by other documents months and may be updated, replaced, or obsoleted by other documents
at any time. It is inappropriate to use Internet-Drafts as at any time. It is inappropriate to use Internet-Drafts as
reference material or to cite them other than as "work in progress." reference material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html http://www.ietf.org/shadow.html
This Internet-Draft will expire on March 24, 2012. This Internet-Draft will expire on July 21, 2012.
Copyright Notice Copyright Notice
Copyright (c) 2011 IETF Trust and the persons identified as the Copyright (c) 2011 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 3, line 9 skipping to change at page 3, line 12
6. Security Considerations.......................................15 6. Security Considerations.......................................15
7. IANA Considerations...........................................15 7. IANA Considerations...........................................15
8. Acknowledgments...............................................15 8. Acknowledgments...............................................15
9. References....................................................16 9. References....................................................16
9.1. Normative References.....................................16 9.1. Normative References.....................................16
9.2. Informative References...................................16 9.2. Informative References...................................16
Author's Addresses...............................................17 Author's Addresses...............................................17
1. Introduction 1. Introduction
FEC Framework document [FECARCH] defines the FEC Framework FEC Framework document [RFC6363] defines the FEC Framework
Configuration Information that governs the overall FEC framework Configuration Information that governs the overall FEC framework
operation common to any FEC scheme. This information MUST be operation common to any FEC scheme. This information must be
available at both sender and reciever(s). available at both sender and reciever(s).
This document describes how to use various signaling protocols to This document describes how various signaling protocols such as
communicate the Configuration information between sender and Session Announcement Protocol (SAP)[RFC2974], Session Initiation
receiver(s). The configuration information may be encoded in any Protocol (SIP)[RFC3261], Real Time Stream Protocol (RTSP)[RFC2326]
compatible format such as SDP [RFC4566], XML etc. A signaling etc. could be used by the FEC scheme (and/or Content Delivery
protocol could be utilised by any FEC scheme and/or any Content Protocol (CDP))to communicate the Configuration information between
Delivery Protocol (CDP). sender and receiver(s). The configuration information may be encoded
in any compatible format such as SDP [RFC4566], XML etc., though
this document references to SDP encoding usage quite extensively.
This document doesn't describe any FEC scheme specific information This document doesn't describe any FEC scheme specific information
(FSSI) (for example, how source blocks are constructed) or any (FSSI) (for example, how source blocks are constructed) or any
sender or receiver side operation for a particular FEC scheme (for sender or receiver side operation for a particular FEC scheme (for
example, whether the receiver makes use of one or more repair flows example, whether the receiver makes use of one or more repair flows
that are received). Such FEC scheme specifics SHOULD be covered in that are received). Such FEC scheme specifics should be covered in
separate document(s). This document doesn't mandate a particular separate document(s). This document doesn't mandate a particular
encoding format for the configuration information either. encoding format for the configuration information either.
This document is structured such that Section 2 describes the terms This document is structured such that Section 2 describes the terms
used in this document, section 3 describes the FEC Framework used in this document, section 4 describes the FEC Framework
Configuration Information, section 4 describes how to use signaling Configuration Information, section 5 describes how to use signaling
protocol for the multicast and unicast applications, and section 5 protocol for the multicast and unicast applications, and section 6
describes security consideration. describes security consideration.
2. Specification Language 2. Specification Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119]. document are to be interpreted as described in [RFC2119].
3. Terminology/Abbreviations 3. Terminology/Abbreviations
This document makes use of the terms/abbreviations defined in the This document makes use of the terms/abbreviations defined in the
FEC Framework document [FECARCH] and defines the following FEC Framework document [RFC6363] and defines the following
additional terms: additional terms:
o Media Sender - Node providing original media flow(s) to the o Media Sender - Node providing original media flow(s) to the
'FEC Sender' 'FEC Sender'
o Media Receiver - Node performing the Media decoding; o Media Receiver - Node performing the Media decoding;
o FEC Sender - Node performing the FEC encoding on the o FEC Sender - Node performing the FEC encoding on the
original media flow(s) to produce the FEC repair flow(s) original media flow(s) to produce the FEC repair flow(s)
skipping to change at page 4, line 34 skipping to change at page 4, line 34
o Receiver - Same as FEC Receiver o Receiver - Same as FEC Receiver
o (Media) Flow - A single media instance i.e., an audio stream o (Media) Flow - A single media instance i.e., an audio stream
or a video stream. or a video stream.
This document deliberately refers to the 'FEC Sender' and 'FEC This document deliberately refers to the 'FEC Sender' and 'FEC
Receiver' as the 'Sender' and 'Receiver' respectively. Receiver' as the 'Sender' and 'Receiver' respectively.
4. FEC Framework Configuration Information 4. FEC Framework Configuration Information
The FEC Framework [FECARCH] defines a minimum set of information The FEC Framework [RFC6363] defines a minimum set of information
that MUST be communicated between the sender and receiver(s) for a that is communicated between the sender and receiver(s) for a proper
proper operation of an FEC scheme. This information is referred to operation of an FEC scheme. This information is referred to as "FEC
as "FEC Framework Configuration Information". This is the Framework Configuration Information". This is the information that
information that the FEC Framework needs in order to apply FEC the FEC Framework needs in order to apply FEC protection to the
protection to the transport flows. transport flows.
A single instance of the FEC Framework provides FEC protection for A single instance of the FEC Framework provides FEC protection for
all packets of a specified set of source packet flows, by means of all packets of a specified set of source packet flows, by means of
one or more packet flows consisting of repair packets. As per the one or more packet flows consisting of repair packets. As per the
FEC Framework document [FECARCH] section 6.5, the FEC Framework FEC Framework document [RFC6363] section 6.5, the FEC Framework
Configuration Information includes the following for each FEC Configuration Information includes the following for each FEC
Framework instance: Framework instance:
1. Identification of the repair flow(s) 1. Identification of the repair flow(s)
2. Identification of Source Flow(s) 2. Identification of Source Flow(s)
3. Identification of FEC Scheme 3. Identification of FEC Scheme
4. Length of Explicit Source FEC payload ID 4. Length of Explicit Source FEC payload ID
5. FEC Scheme Specific Information (FSSI) 5. FEC Scheme Specific Information (FSSI)
FSSI basically provides an opaque container to encode FEC scheme FSSI basically provides an opaque container to encode FEC scheme
specific configuration information such as buffer size, decoding specific configuration information such as buffer size, decoding
wait-time etc. Please refer to the FEC Framework document [FECARCH] wait-time etc. Please refer to the FEC Framework document [RFC6363]
for more details. for more details.
The usage of signaling protocols described in this document requires The usage of signaling protocols described in this document requires
that the application layer responsible for the FEC Framework that the application layer responsible for the FEC Framework
instance provide the value for each of the configuration information instance provide the value for each of the configuration information
parameter (listed above) encoded as per the chosen encoding format. parameter (listed above) encoded as per the chosen encoding format.
In case of failure to receive the complete information, the In case of failure to receive the complete information, the
signaling protocol module MUST return an error for the Operation, signaling protocol module must return an error for the Operation,
Administration and Maintenance (OAM) purposes and optionally convey Administration and Maintenance (OAM) purposes and optionally convey
to the application layer. Please refer to the figure 1 of the FEC this error to the application layer. Please refer to the figure 1 of
Framework document [FECARCH] for further illustration. the FEC Framework document [RFC6363] for further illustration.
This document does not make any assumption that the 'FEC sender' and This document does not make any assumption that the 'FEC sender' and
'Media Sender' functionalities are implemented on the same device, 'Media Sender' functionalities are implemented on the same device,
though that may be the case. Similarly, this document does not make though that may be the case. Similarly, this document does not make
any assumption that 'FEC receiver' and 'Media Receiver' any assumption that 'FEC receiver' and 'Media Receiver'
functionalities are implemented on the same device, though that may functionalities are implemented on the same device, though that may
be the case. There may also be more than one Media Senders. be the case. There may also be more than one Media Sender.
4.1. Encoding Format 4.1. Encoding Format
The FEC Framework Configuration Information (listed above in section The FEC Framework Configuration Information (listed above in section
3) may be encoded in any format such as SDP, XML etc. as chosen or 4) may be encoded in any format such as SDP, XML etc. as chosen or
prefered by a particular FEC Framework instance. The selection of prefered by a particular FEC Framework instance. The selection of
such encoding format or syntax is independent of the signaling such encoding format or syntax is independent of the signaling
protocol and beyond the scope of this document. protocol and beyond the scope of this document.
Whatever encoding format is selected for a particular FEC framework Whatever encoding format is selected for a particular FEC framework
instance, it MUST be known to the signaling protocol. This is to instance, it must be known to the signaling protocol. This is to
provide a means (e.g. a field such as Payload Type) in the signaling provide a means (e.g. a field such as Payload Type) in the signaling
protocol message(s) to convey the chosen encoding format for the protocol message(s) to convey the chosen encoding format for the
configuration information so that the Payload i.e., configuration configuration information so that the Payload i.e., configuration
information can be correctly parsed as per the semantics of the information can be correctly parsed as per the semantics of the
chosen encoding format at the receiver. Please note that the chosen encoding format at the receiver. Please note that the
encoding format is not a negotiated parameter, but rather a property encoding format is not a negotiated parameter, but rather a property
of a particular FEC Framework instance and/or its implementation. of a particular FEC Framework instance and/or its implementation.
Additionally, the encoding format for each FEC Framework Additionally, the encoding format for each FEC Framework
configuration parameter MUST be defined in terms of a sequence of configuration parameter must be defined in terms of a sequence of
octets that can be embedded within the payload of the signaling octets that can be embedded within the payload of the signaling
protocol message(s). The length of the encoding format MUST either protocol message(s). The length of the encoding format must either
be fixed, or derived by examining the encoded octets themselves. be fixed, or derived by examining the encoded octets themselves.
For example, the initial octets may include some kind of length For example, the initial octets may include some kind of length
indication. indication.
Independent of the encoding formats supported by an FEC scheme, each Independent of the encoding formats supported by an FEC scheme, each
instance of the FEC Framework MUST use a single encoding format to instance of the FEC Framework must use a single encoding format to
describe all of the configuration information associated with that describe all of the configuration information associated with that
instance. The signaling protocol specified in this document SHOULD instance. The signaling protocol specified in this document should
NOT validate the encoded information, though it may validate the not validate the encoded information, though it may validate the
syntax or length of the encoded information. syntax or length of the encoded information.
The reader may refer to the SDP elements document [FECSDP], which The reader may refer to the SDP elements document [RFC6364], which
describes the usage of 'SDP' encoding format as an example encoding describes the usage of 'SDP' encoding format as an example encoding
format for FEC Framework Configuration Information. format for FEC Framework Configuration Information.
5. Signaling Protocol Usage 5. Signaling Protocol Usage
FEC Framework [FECARCH] requires certain FEC Framework Configuration FEC Framework [RFC6363] requires certain FEC Framework Configuration
Information to be available to both sender and receiver(s). This Information to be available to both sender and receiver(s). This
configuration information is almost always formulated at the sender configuration information is almost always formulated at the sender
(or on behalf of a sender), and somehow made available at the (or on behalf of a sender), and somehow made available at the
receiver(s). While one may envision a static method to populate the receiver(s). While one may envision a static method to populate the
configuration information at both sender and receiver(s), it would configuration information at both sender and receiver(s), it would
not be optimal since it would (a) require the knowledge of every not be optimal since it would (a) require the knowledge of every
receiver in advance, (b) require the time and means to configure receiver in advance, (b) require the time and means to configure
each receiver and sender, and (c) increase the misconfiguration each receiver and sender, and (c) increase the misconfiguration
possibility. Hence, there is a benefit in using a dynamic method possibility. Hence, there is a benefit in using a dynamic method
i.e., signaling protocol to convey the configuration information i.e., signaling protocol to convey the configuration information
between sender and one or more receivers. between sender and one or more receivers.
Since the configuration information may be needed at a particular Since the configuration information may be needed at a particular
receiver versus many receivers (depending on the multimedia stream receiver versus many receivers (depending on the multimedia stream
being unicast e.g. Video on Demand, or multicast e.g. Broadcast or being unicast e.g. Video on Demand, or multicast e.g. Broadcast or
IPTV), we need two types of signaling protocols - one to deliver the IPTV), we need two types of signaling protocols - one to deliver the
configuration information to many receivers via multicasting configuration information to many receivers via multicasting
(described in section 4.1), and the other to deliver the (described in section 5.1), and the other to deliver the
configuration information to one and only one receiver via configuration information to one and only one receiver via
unicasting (described in section 4.2). unicasting (described in section 5.2).
Figure 1 below illustrates a sample topology showing the FEC sender Figure 1 below illustrates a sample topology showing the FEC sender
and FEC receiver (that may or may not be the Media Sender and Media and FEC receiver (that may or may not be the Media Sender and Media
Receiver respectively) such that FEC_Sender1 is serving Receiver respectively) such that FEC_Sender1 is serving
FEC_Receiver11,12,13 via the multicast signaling protocol, whereas FEC_Receiver11,12,13 via the multicast signaling protocol, whereas
the FEC_Sender2 is serving only FEC_Receiver2 via the unicast the FEC_Sender2 is serving only FEC_Receiver2 via the unicast
signaling protocol. signaling protocol.
FEC_Sender2---------| |--------FEC_Receiver2 FEC_Sender2---------| |--------FEC_Receiver2
| | | |
skipping to change at page 8, line 9 skipping to change at page 8, line 9
5.1. Signaling Protocol for Multicasting 5.1. Signaling Protocol for Multicasting
This specification describes using Session Announcement Protocol This specification describes using Session Announcement Protocol
(SAP) version 2 [RFC2974] as the signaling protocol to multicast the (SAP) version 2 [RFC2974] as the signaling protocol to multicast the
configuration information from one sender to many receivers. The configuration information from one sender to many receivers. The
apparent advantage is that the server doesn't need to maintain any apparent advantage is that the server doesn't need to maintain any
state for any receiver using SAP. state for any receiver using SAP.
SAP messages are carried over UDP over IP with destination UDP SAP messages are carried over UDP over IP with destination UDP
port being 9875 and source UDP port being any available number, port being 9875 and source UDP port being any available number,
as described in RFC2974. The SAP message(s) SHOULD contain an as described in RFC2974. The SAP message(s) should contain an
authentication header and MAY employ cryptography. One authentication header using PGP authentication.
cryptography method suggested by this specification is the usage
of Group Cryptography as specified in GDOI [RFC3547].
At the high level, a sender, acting as the SAP announcer, signals At the high level, a sender, acting as the SAP announcer, signals
the FEC Framework Configuration Information for each FEC Framework the FEC Framework Configuration Information for each FEC Framework
instance available at the sender, using the SAP message(s). The instance available at the sender, using the SAP message(s). The
configuration information, encoded in a suitable format as per the configuration information, encoded in a suitable format as per the
section 3.1, is carried in the Payload of the SAP message(s). A section 4.1, is carried in the Payload of the SAP message(s). A
receiver, acting as the SAP listener, listens on a well known UDP receiver, acting as the SAP listener, listens on a well-known UDP
port and at least one well known multicast group IP address (as port and at least one well known multicast group IP address (as
explained in the section 4.1.1). This enables the receiver to explained in the section 5.1.1). This enables the receiver to
receive the SAP message(s) and obtains the FEC Framework receive the SAP message(s) and obtains the FEC Framework
Configuration Information for each FEC Framework Instance. Configuration Information for each FEC Framework Instance.
One may refer to 'Requirements for IP Multicast Session Announcement
in the Internet' document [SAP-REQ] to know about the SAP
limitations.
Using the configuration information, the receiver becomes aware of Using the configuration information, the receiver becomes aware of
available FEC protection options, corresponding multicast trees (S,G available FEC protection options, corresponding multicast trees (S,G
or *,G addresses) etc. The receiver may subsequently subscribe to or *,G addresses) etc. The receiver may subsequently subscribe to
one or more multicast trees to receive the FEC streams using out-of- one or more multicast trees to receive the FEC streams using out-of-
band multicasting techniques such as PIM [RFC4601]. This, however, band multicasting techniques such as PIM [RFC4601]. This, however,
is outside the scope of this document. is outside the scope of this document.
Figure 2 below illustrates the SAP packet format (it is reprinted Figure 2 below illustrates the SAP packet format (it is reprinted
from the RFC2974) - from the RFC2974) -
0 1 2 3 0 1 2 3
skipping to change at page 9, line 29 skipping to change at page 9, line 29
+ - - - - - - - - - - - - - - - - - - - - +-+ | + - - - - - - - - - - - - - - - - - - - - +-+ |
| | | |
: payload : : payload :
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2 SAP Message format Figure 2 SAP Message format
While the RFC2974 includes explanation for each field, it is worth While the RFC2974 includes explanation for each field, it is worth
discussing the 'Payload' and 'Payload Type' fields. The 'Payload' discussing the 'Payload' and 'Payload Type' fields. The 'Payload'
field MUST be used to carry the FEC Framework Configuration field is used to carry the FEC Framework Configuration Information.
Information. Subsequently, the optional 'Payload Type' field, which Subsequently, the optional 'Payload Type' field, which is a MIME
is a MIME content type specifier, MUST describe the encoding format content type specifier, is used to describe the encoding format used
used to encode the Payload. For example, the 'Payload Type' field to encode the Payload.
may be application/sdp if the FEC Framework Configuration
Information is encoded in SDP format and carried in the SAP payload. For example, the 'Payload Type' field may be application/sdp if
Similarly, it would be application/xml if the FEC Framework the FEC Framework Configuration Information is encoded in SDP
Configuration Information was encoded in XML format. format and carried in the SAP payload. Similarly, it would be
application/xml if the FEC Framework Configuration Information was
encoded in XML format.
Section 5.1.1 describes the sender procedure, whereas the section
5.1.2 describes the receiver procedure in the context of config
signaling using RFC2974.
5.1.1. Sender Procedure 5.1.1. Sender Procedure
The sender signals the FEC framework configuration for each FEC The sender signals the FEC framework configuration for each FEC
framework instance in a periodic SAP announcement message [RFC2974]. framework instance in a periodic SAP announcement message [RFC2974].
The SAP announcement message is sent to a well known multicast IP The SAP announcement message is sent to a well known multicast IP
address and UDP port, as specified in [RFC2974]. The announcement is address and UDP port, as specified in [RFC2974]. The announcement is
multicast with the same scope as the session being announced. multicast with the same scope as the session being announced.
The SAP module at the sender obtains the FEC Framework Configuration The SAP module at the sender obtains the FEC Framework Configuration
Information per Instance from the 'FEC Framework' module and places Information per Instance from the 'FEC Framework' module and places
that in the SAP payload accordingly. A single SAP (announcement) that in the SAP payload accordingly. A single SAP (announcement)
message MUST carry the FEC Framework Configuration Information for a message must carry the FEC Framework Configuration Information for a
single FEC Framework Instance. The SAP message is then sent over UDP single FEC Framework Instance. The SAP message is then sent over UDP
over IP. over IP.
While it is possible to aggregate multiple SAP (announcement) While it is possible to aggregate multiple SAP (announcement)
messages in a single UDP datagram as long as the resulting UDP messages in a single UDP datagram as long as the resulting UDP
datagram length is less than the IP MTU of the outgoing interface, datagram length is less than the IP MTU of the outgoing interface,
this specification does not recommend it since there is no length this specification does not recommend it since there is no length
field in the SAP header to identify SAP message boundary. Hence, field in the SAP header to identify SAP message boundary. Hence,
this specification recommends single SAP announcement message to this specification recommends single SAP announcement message to
be sent in a UDP datagram. be sent in a UDP datagram.
The IP packet carrying the SAP message MUST be sent to destination The IP packet carrying the SAP message must be sent to destination
IP address of one of the following depending on the selected scope: IP address of one of the following depending on the selected scope:
- 224.2.127.254 (if IPv4 global scope 224.0.1.0-238.255.255.255 - 224.2.127.254 (if IPv4 global scope 224.0.1.0-238.255.255.255
is selected for the FEC stream), or is selected for the FEC stream), or
- FF0X:0:0:0:0:0:2:7FFE (if IPv6 multicasting is selected for the - FF0X:0:0:0:0:0:2:7FFE (if IPv6 multicasting is selected for the
FEC stream, where X is the 4-bit scope value), or FEC stream, where X is the 4-bit scope value), or
- the highest multicast address (239.255.255.255, for example) in - the highest multicast address (239.255.255.255, for example) in
the relevant administrative scope zone (if IPv4 administrative the relevant administrative scope zone (if IPv4 administrative
scope 239.0.0.0-239.255.255.255 is selected for the FEC stream) scope 239.0.0.0-239.255.255.255 is selected for the FEC stream)
As defined in RFC2974, the IP packet carrying SAP message MUST use As defined in RFC2974, the IP packet carrying SAP message must use
destination UDP port being 9875 and source UDP port bein any destination UDP port being 9875 and source UDP port bein any
available number. The default IP TTL value (or Hop Limit value) available number. The default IP TTL value (or Hop Limit value)
SHOULD be 255 at the sender, though the sender implementation may should be 255 at the sender, though the sender implementation may
allow it to be any other value to implicitly create the multicast allow it to be any other value to implicitly create the multicast
boundary for SAP announcements. The IP DSCP field may be set to any boundary for SAP announcements. The IP DSCP field may be set to any
value that indicates a desired QoS treatment in the IP network. value that indicates a desired QoS treatment in the IP network.
The IP packet carrying the SAP message MUST be sent with source IP The IP packet carrying the SAP message must be sent with source IP
address that is reachable by the receiver. The sender may assign the address that is reachable by the receiver. The sender may assign the
same IP address in the "originating source" field of the SAP same IP address in the "originating source" field of the SAP
message, as the one used in the source IP address of the IP packet. message, as the one used in the source IP address of the IP packet.
Furthermore, the FEC Framework Configuration Information MUST NOT Furthermore, the FEC Framework Configuration Information must not
include any of the reserved multicast group IP addresses for the FEC include any of the reserved multicast group IP addresses for the FEC
streams (i.e., source or repair flows), though it may use the same streams (i.e., source or repair flows), though it may use the same
IP address as the 'originating source' address to identify the FEC IP address as the 'originating source' address to identify the FEC
streams (i.e., source or repair flows). Please refer to IANA streams (i.e., source or repair flows). Please refer to IANA
assignments for multicast addresses. assignments for multicast addresses.
The sender MUST periodically send the 'SAP announcement' message to The sender must periodically send the 'SAP announcement' message to
ensure that the receiver doesn't purge the cached entry(s) from the ensure that the receiver doesn't purge the cached entry(s) from the
database and doesn't trigger the deletion of FEC Framework database and doesn't trigger the deletion of FEC Framework
Configuration Information. Configuration Information.
While the time interval between repetitions of an announcement can While the time interval between repetitions of an announcement can
be calculated as per the very sophisticated but complex method be calculated as per the very sophisticated but complex method
explained in [RFC2974], this document recommends a simpler method in explained in [RFC2974], this document recommends a simpler method in
which the user specifies the time interval in the range of 1-200 which the user specifies the time interval in the range of 1-200
seconds with suggested default value being 60 seconds. In this seconds with suggested default value being 60 seconds. In this
method, the 'time interval' may be signaled in the SAP message method, the 'time interval' may be signaled in the SAP message
payload e.g. within the FEC Framework Configuration Information. payload e.g. within the FEC Framework Configuration Information.
Note that SAP doesn't allow the time-interval to be signaled in Note that SAP doesn't allow the time-interval to be signaled in
the SAP header. Hence, the usage of simpler method desires the the SAP header. Hence, the usage of simpler method requires the
time-interval to be included in the FEC Framework Configuration time-interval to be included in the FEC Framework Configuration
Information, if the default time interval (=60 seconds) for SAP Information, if the default time interval (=60 seconds) for SAP
message repeations is not deemed enough. For example, the usage of message repeations is not used. For example, the usage of "r="
"r=" (repeat time) field in SDP to convey the time-interval value, (repeat time) field in SDP may convey the time-interval value, if
if SDP encoding format is used. SDP encoding format is used.
The time interval MUST be chosen to ensure that SAP announcement The time interval must be chosen to ensure that SAP announcement
messages are sent out before the corresponding multicast routing messages are sent out before the corresponding multicast routing
entry e.g. (S,G) or (*,G) (corresponding to the SAP multicast entry e.g. (S,G) or (*,G) (corresponding to the SAP multicast
tree(s)) on the router(s) times out. (It is worth noting that the tree(s)) on the router(s) times out. (It is worth noting that the
default time-out period for the multicast routing entry is 210 default time-out period for the multicast routing entry is 210
seconds, per the PIM specification [RFC4601], though the time-out seconds, per the PIM specification [RFC4601], though the time-out
period may be set to another value as allowed by the router period may be set to another value as allowed by the router
implementation.) implementation.)
A SAP implementation MAY also support the complex method for A SAP implementation may also support the complex method for
determining the SAP announcement time interval, and provide the determining the SAP announcement time interval, and provide the
option to select it. option to select it.
The sender may choose to delete the announced FEC Framework The sender may choose to delete the announced FEC Framework
Configuration Information by sending a 'SAP deletion' message. This Configuration Information, as defined in section 4 of RFC2974. The
deletion is useful if the sender no longer desires to send anymore explicit deletion is useful if the sender no longer desires to send
FEC streams. anymore FEC streams.
If the sender needs to modify the announced FEC Framework If the sender needs to modify the announced FEC Framework
Configuration Information for one or more FEC instances, then the Configuration Information for one or more FEC instances, then the
sender MUST send a new announcement message with a different sender must send a new announcement message with a different
'Message Identifier Hash' value as per the rules described in 'Message Identifier Hash' value as per the rules described in
section 5 of RFC2974 [RFC2974]. Such announcement message SHOULD be section 5 of RFC2974 [RFC2974]. Such announcement message should be
sent immediately (without having to wait for the time-interval) to sent immediately (without having to wait for the time-interval) to
ensure that the modifications are received by the receiver as soon ensure that the modifications are received by the receiver as soon
as possible. The sender MUST also send the SAP deletion message to as possible. The sender must also send the SAP deletion message to
delete the previous SAP announcement message (i.e., with the delete the previous SAP announcement message (i.e., with the
previous 'Message Identifier Hash' value). previous 'Message Identifier Hash' value).
5.1.2. Receiver Procedure 5.1.2. Receiver Procedure
The receiver MUST listen on UDP port 9875 for packets arriving with The receiver must listen on UDP port 9875 for packets arriving with
IP destination address of either 224.2.127.254 (if IPv4 global scope IP destination address of either 224.2.127.254 (if IPv4 global scope
session is used for the FEC stream), or FF0X:0:0:0:0:0:2:7FFE (if session is used for the FEC stream), or FF0X:0:0:0:0:0:2:7FFE (if
IPv6 is selected, where X is the 4-bit scope value), or the highest IPv6 is selected, where X is the 4-bit scope value), or the highest
IP address (239.255.255.255, for example) in the relevant IP address (239.255.255.255, for example) in the relevant
administrative scope zone (if IPv4 administrative scope 239.0.0.0- administrative scope zone (if IPv4 administrative scope 239.0.0.0-
239.255.255.255 is selected for the FEC stream). These IP addresses 239.255.255.255 is selected for the FEC stream). These IP addresses
are mandated for SAP usage by RFC2974 [RFC2974]. are mandated for SAP usage by RFC2974 [RFC2974].
The receiver, upon receiving a SAP announcement message, creates an The receiver, upon receiving a SAP announcement message, creates an
entry, if it doesn't already exist, in a local database and passes entry, if it doesn't already exist, in a local database and passes
the FEC Framework Configuration Information from the SAP Payload the FEC Framework Configuration Information from the SAP Payload
field to the 'FEC Framework' module. Each entry also maintains a field to the 'FEC Framework' module. Each entry also maintains a
time-out value, which is (re)set to the five times the time-interval time-out value, which is (re)set to five times the time-interval
value, which is either the default = 60 seconds, or the value value, which is either the default = 60 seconds, or the value
signaled by the sender. signaled by the sender.
Note that SAP doesn't allow the time-interval to be signaled in Note that SAP doesn't allow the time-interval to be signaled in
the SAP header. Hence, the time-interval SHOULD be included in the the SAP header. Hence, the time-interval should be included in the
FEC Framework Configuration Information. For example, the usage of FEC Framework Configuration Information. For example, the usage of
"r=" (repeat time) field in SDP to convey the time-interval value, "r=" (repeat time) field in SDP to convey the time-interval value,
if SDP encoding format is used. if SDP encoding format is used.
The time-out value associated with each entry is reset when the The time-out value associated with each entry is reset when the
corresponding announcement (please see section 5 of [RFC2974]) is corresponding announcement (please see section 5 of [RFC2974]) is
received. If the time-out value for any entry reaches zero, then received. If the time-out value for any entry reaches zero, then
that entry MUST be deleted from the database. that entry must be deleted from the database, as described in
section 4 of [RFC2974]. The receiver, upon receiving a SAP delete
The receiver, upon receiving a SAP delete message, MUST delete the message, must delete the matching SAP entry in its database, as
matching SAP entry in its database. described in section 4 of [RFC2974].
The deletion of SAP entry MUST result in the receiver no longer The deletion of SAP entry must result in the receiver no longer
using the relevant FEC Framework Configuration Information for the using the relevant FEC Framework Configuration Information for the
corresponding instance, and MUST no longer subscribe to any related corresponding instance, and must no longer subscribe to any related
FEC streams. FEC streams.
5.2. Signaling Protocol for Unicasting 5.2. Signaling Protocol for Unicasting
This document describes leveraging any signaling protocol that is This document describes leveraging any signaling protocol that is
already used by the unicast application, for exchanging the FEC already used by the unicast application, for exchanging the FEC
Framework Configuration Information between two nodes. Framework Configuration Information between two nodes.
For example, a multimedia (VoD) client may send a request via For example, a multimedia (VoD) client may send a request via
unicasting for a particular content to the multimedia (VoD) server, unicasting for a particular content to the multimedia (VoD) server,
which may offer various options such as encodings, bitrates, which may offer various options such as encodings, bitrates,
transport etc. for the content. The client selects the suitable transport etc. for the content. The client selects the suitable
options and answers to the server, paving the way for the content to options and answers to the server, paving the way for the content to
be unicast on the chosen transport from server to the client. This be unicast on the chosen transport from server to the client. This
offer/answer signaling, described in [RFC3264], is commonly utilized offer/answer signaling, described in [RFC3264], is commonly utilized
by many application protocols such as SIP, RTSP etc. by many application protocols such as SIP, RTSP etc.
The fact that two nodes desiring unicast communication almost always The fact that two nodes desiring unicast communication almost always
rely on an application to first exchange the application related rely on an application to first exchange the application related
parameters via the signaling protocol, it is logical to enhance such parameters via the signaling protocol makes it logical to enhance
signaling protocol(s) to (a) convey the desire for the FEC such signaling protocol(s) to (a) convey the desire for the FEC
protection and (b) subsequently also exchange FEC parameters i.e., protection and (b) subsequently also exchange FEC parameters i.e.,
FEC Framework Configuration Information. This enables the node FEC Framework Configuration Information. This enables the node
acting as the offerer to offer 'FEC Framework Configuration acting as the offerer to offer 'FEC Framework Configuration
Information' for each of available FEC instances, and the node Information' for each of available FEC instances, and the node
acting as the answerer conveying the chosen FEC Framework acting as the answerer conveying the chosen FEC Framework
instance(s) to the offerer. The usage of FEC framework instance is instance(s) to the offerer. The usage of FEC framework instance is
explained the FEC Framework document [FECARCH]. explained the FEC Framework document [RFC6363].
While enhancing an application's signaling protocol to exchange FEC While enhancing an application's signaling protocol to exchange FEC
parameters is one method (briefly explained above), an alternative parameters is one method (briefly explained above), an alternative
method would be to have a unicast based generic protocol that could method would be to have a unicast based generic protocol that could
be used by two nodes independent of the application's signaling be used by two nodes independent of the application's signaling
protocol. The latter is not covered by this document, of course. protocol. The latter is not covered by this document, of course.
The remainder of this section provides example signaling protocols The remainder of this section provides example signaling protocols
and explains how they can be used to exchange FEC Framework and explains how they can be used to exchange FEC Framework
Configuration Information. Configuration Information.
skipping to change at page 14, line 11 skipping to change at page 14, line 12
participants. SIP also enables the participants to discover one participants. SIP also enables the participants to discover one
another and to agree on a characterization of a multimedia session another and to agree on a characterization of a multimedia session
they would like to share. SIP runs on either TCP or UDP or SCTP they would like to share. SIP runs on either TCP or UDP or SCTP
transport, and uses SDP as the encoding format to describe multmedia transport, and uses SDP as the encoding format to describe multmedia
session attributes. session attributes.
SIP already uses an offer/answer model with SDP, described in SIP already uses an offer/answer model with SDP, described in
[RFC3264], to exchange the information between two nodes to [RFC3264], to exchange the information between two nodes to
establish unicast sessions between them. This document extends the establish unicast sessions between them. This document extends the
usage of this model for exchanging the FEC Framework Configuration usage of this model for exchanging the FEC Framework Configuration
Information, explained in section 3. Any SDP specific enhancements Information, explained in section 4. Any SDP specific enhancements
to accommodate the FEC Framework are covered in the SDP Elements to accommodate the FEC Framework are covered in the SDP Elements
specification [FECSDP]. specification [RFC6364].
5.2.2. RTSP 5.2.2. RTSP
Real-Time Streaming Protocol (RTSP) [RFC2326] is an application- Real-Time Streaming Protocol (RTSP) [RFC2326] is an application-
level signaling protocol for control over the delivery of data with level signaling protocol for control over the delivery of data with
real-time properties. RTSP provides an extensible framework to real-time properties. RTSP provides an extensible framework to
enable controlled, on-demand delivery of real-time data, such as enable controlled, on-demand delivery of real-time data, such as
audio and video. RTSP runs on either TCP or UDP transports. audio and video. RTSP runs on either TCP or UDP transports.
RTSP already provides an ability to extend the existing method with RTSP already provides an ability to extend the existing method with
skipping to change at page 15, line 16 skipping to change at page 15, line 16
convey the selected FEC protection to Node2, and proceed with convey the selected FEC protection to Node2, and proceed with
regular RTSP messaging. regular RTSP messaging.
Suffice to say, if the requesting node (Node1) received '551 Option Suffice to say, if the requesting node (Node1) received '551 Option
not supported' response from Node2, then the requesting node (Node1) not supported' response from Node2, then the requesting node (Node1)
may send the SETUP message without using the Require header. may send the SETUP message without using the Require header.
6. Security Considerations 6. Security Considerations
This document recommends SAP message(s) be authenticated to ensure This document recommends SAP message(s) be authenticated to ensure
sender authentication, as described in section 5. sender authentication, as described in section 5.1.
There is no additional security consideration other than what's There is no additional security consideration other than what's
already covered in [RFC2974] for SAP, [RFC2326] for RTSP, and already covered in [RFC2974] for SAP, [RFC2326] for RTSP, and
[RFC3261] for SIP. [RFC3261] for SIP.
7. IANA Considerations 7. IANA Considerations
This document requests IANA to register a new RTSP Option tag This document requests IANA to register a new RTSP Option tag
(option-tag) listed below in the RTSP/1.0 Option Tags table of the (option-tag) listed below in the RTSP/1.0 Option Tags table of the
"Real Time Streaming Protocol (RTSP)/1.0 Parameters" registry "Real Time Streaming Protocol (RTSP)/1.0 Parameters" registry
skipping to change at page 16, line 12 skipping to change at page 16, line 12
This document was prepared using 2-Word-v2.0.template.dot. This document was prepared using 2-Word-v2.0.template.dot.
9. References 9. References
9.1. Normative References 9.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[FECARCH] Watson, M., "Forward Error Correction (FEC) Framework", [RFC6363] Watson, M., "Forward Error Correction (FEC) Framework",
draft-ietf-fecframe-framework-15 (work in progress), Sep RFC6363, March 2011.
2011.
[FECSDP] Begen, A., "SDP Elements for FEC Framework", draft-ietf- [RFC6364] Begen, A., "Session Description Protocol Elements for
fecframe-sdp-elements-11 (work in progress), April 2011. FEC Framework ", RFC6364, October 2011.
[RFC2974] Handley, M., Perkins, C. and E. Whelan, "Session [RFC2974] Handley, M., Perkins, C. and E. Whelan, "Session
Announcement Protocol", RFC 2974, October 2000. Announcement Protocol", RFC 2974, October 2000.
9.2. Informative References 9.2. Informative References
[RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
Description Protocol", RFC 4566, July 2006. Description Protocol", RFC 4566, July 2006.
[RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model
skipping to change at page 16, line 45 skipping to change at page 17, line 5
Rosenberg, "SIP: Session Initiation Protocol", RFC 3261, Rosenberg, "SIP: Session Initiation Protocol", RFC 3261,
June 2002. June 2002.
[RFC4601] Fenner, etc., "Protocol Independent Multicast - Sparse [RFC4601] Fenner, etc., "Protocol Independent Multicast - Sparse
Mode (PIM-SM): Protocol Specification", RFC 4601, August Mode (PIM-SM): Protocol Specification", RFC 4601, August
2006. 2006.
[RFC3547] Baugher, etc., "The Group Domain of Interpretation", RFC [RFC3547] Baugher, etc., "The Group Domain of Interpretation", RFC
3547, July 2003. 3547, July 2003.
[SAP-REQ] Asaeda, etc., "Requirements for IP Multicast Session
Announcement in the Internet, draft-ietf-mboned-session-
announcement-req-03, September 2010.
Author's Addresses Author's Addresses
Rajiv Asati Rajiv Asati
Cisco Systems, Cisco Systems,
7025-6 Kit Creek Rd, RTP, NC, 27709-4987 7025-6 Kit Creek Rd, RTP, NC, 27709-4987
Email: rajiva@cisco.com Email: rajiva@cisco.com
 End of changes. 63 change blocks. 
107 lines changed or deleted 107 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/