CLUE | C. Groves, Ed. |
Internet-Draft | W. Yang |
Intended status: Informational | R. Even |
Expires: July 30, 2014 | Huawei |
January 26, 2014 |
CLUE and latent configurations
draft-groves-clue-latent-config-00
This document proposes to use Latent Configurations as described by the SDP media capability negotiation framework [RFC6871] for the description and negotiation of CLUE encodings.
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."
This Internet-Draft will expire on July 30, 2014.
Copyright (c) 2014 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
One of the issues faced in CLUE is how to describe the encodings associated with the Advertised Captures. It was recently decided that this encoding information would not be described in CLUE itself. This means that other methods such as the use of SDP are required to transmit this encoding information. When considering the use of SDP (and in particular the use of SDP Offer/Answer) it should be recognized that there is a semantic difference between a CLUE encoding and an SDP media stream description. Given the nature of a CLUE exchange the encoding represents a Capture/Stream that may occur in the future (i.e. no resources are reserved) whereas a SDP Offer typically relates to resources that are available at that point in time. This does lead to complications when trying to describe CLUE encodings using standard SDP O/A mechanisms.
An alternate approach to using the standard SDP O/A mechanisms for describing CLUE encodings is to use the "SDP Capability Negotiation framework" [RFC5939] and in particular to use the SDP Media Capabilities Negotiation [RFC6871]. [RFC6871] defines "Latent Configurations" as a means to describe media streams that may be used in the future.
The sections below discuss different aspects and benefits of using Latent Configurations to describe CLUE encodings.
[RFC6501] defines a Latent Configuration as:
From the above description it can be seen that the semantic of a Latent Configurations closely matches a CLUE message flow. I.e. A set of possible Captures/Encodings (e.g. configurations) are Advertised, the receiver can choose particular Captures/Encodings and then the actual media stream is subsequently established. Therefore the authors believe that use of latent configurations is a good semantic fit with CLUE to describe the encodings.
It has been recognized that CLUE Advertisements may contain a large number of Captures and as there may be multiple encodings per capture potentially a larger number of encodings.
Section 4.2 of CLUE signaling draft [I-D.kyzivat-clue-signaling] indicates the CLUE Provider uses an "m" line for each separate encoding and utilizes the "a=inactive", "a=sendonly" and "a=recvonly" to manage when the media flows are instantiated.
This means that ports must be allocated for these "m" lines and the SDP Offer/Answer [RFC3264] rules regarding maintaining these "m" lines must be followed.
This results in potentially very large SDP descriptions containing superfluous information that must be maintained for the life of the session.
Latent Configurations allow a Provider to advertise potential media without allocating multiple "m" lines or allocating ports for the configurations. The SDP O/A model doesn't apply to Latent Configurations which means that less data is sent over the life of a session.
This allows a Provider to offer a basic media stream for immediate use (i.e. an audio "m" line) and a list of latent configurations for later use without the need for additional m-lines. This is described by [RFC6871]:
The use of Latent Configurations also means that resources aren't tied up and can be allocated when they are needed. i.e. from [RFC6871]:
Therefore the authors believe that Latent Configurations provide a clear benefit in terms of messaging size and complexity over normal SDP Offer/Answer mechanism for Advertising CLUE encodings.
One of the issues recognized in the CLUE work it that there needs to be a correlation between the Captures signaled in CLUE and the encodings defined in SDP. The encoding identity (EncodeID) is used as an identity in CLUE. This same identity is then assigned to the encoding in SDP. Currently [I-D.kyzivat-clue-signaling] indicates that the label attribute [RFC4574] is used to identify the encoding and that it is set per "m" line.
This same method can be used with Latent configurations as they allow the use of SDP attributes in the configurations' description. Section 3.3.8/[RFC6871] shows an example of the use of "label" with a latent configuration, e.g.
a=lcfg:4 mt=video t=1 m=1 a=41,42 a=acap:41 label:13 a=acap:42 content:slides
The use of Latent Configurations does not require any new SDP attributes to be defined in order for it to be used for CLUE encodings.
A consumer upon receiving an SDP Offer containing CLUE related latent configurations from the Provider could immediately send an SDP answer with the configurations that it could support, i.e. section 3.3.6.1/[RFC6871]:
The consumer would then send a CLUE Configure indicating the Capture Encodings it wants. The Provider can then subsequently offer actual media streams for the encodings.
One aspect to be considered is the level of adoption of the SDP media capabilities negotiation framework in network entities. Whilst the framework is not widely deployed it is supported by 3GPP (e.g. [SDO-3GPP.24.292]) and is supported by the ITU-T (e.g. [ITU.H248.80.2014] and [ITU.T38.2010].
It must also be recognized that CLUE itself is something completely new and clients and network equipment must be upgraded to support CLUE signaling. Thus this equipment could also be upgraded to support Latent Configurations at the same time.
In cases where a CLUEfull client sends SDP requesting a CLUE channel and a number of latent configurations to a client that doesn't support CLUE or the media capability framework, the receiving client will ignore the attributes associated with the latent configuration as per normal SDP behavior. Thus there are no interworking issues in this case.
In cases where a CLUEfull client sends SDP requesting a CLUE channel and a number of latent configurations to a client that doesn't support CLUE but DOES support the media capability framework, the receiving client would ignore the CLUE related attributes but could respond with what latent configurations it could support. This would allow the sender to decide if it wanted to offer subsequent media streams. Again there are no interworking issues in this case.
In either of the above cases the session between the clients wouldn't be forced to maintain "m" lines for media that would never be used.
At its core BUNDLE is about using SDP to describe that several "m" lines use the same IP Address/Port for the transport of RTP media. If SDP O/A is being used to describe CLUE encodings then there is a potential interaction in that the CLUE encoding "m" lines would all be subject the BUNDLE procedures whether or not they were actually used for media.
The use of Latent Configurations would simplify this interaction because Latent Configurations do not allocate or specify ports. They would not be subject to BUNDLE procedures. Once the use of BUNDLE is established (i.e. for the base media streams), then only the media streams (Capture Encodings) that have been chosen by the Consumer can be added to the BUNDLE.
There are several issues that need to be clarified in [RFC6871] with respect to latent configurations.
This section describes an example session establishment utilizing CLUE and latent configurations. The Provider offers a base audio stream, a CLUE channel (according to [I-D.ietf-mmusic-sctp-sdp] and several latent configurations related to video captures.
v=0 o=alice 2890844526 2890844526 IN IP4 host.anywhere.com s= c=IN IP4 host.anywhere.com t=0 0 m=audio 49170 RTP/AVP 0 ; Base audio stream a=rtpmap:0 PCMU/8000 ; CLUE channel establishment request m=application 49172 SCTP 49172 a=setup:actpass a=connection:new a=sctpmap:49172 CLUE 1 ;Offered configurations a=rmcap:1 H264/90000 ; this is needed for the m= a=rmcap:2 VP8/90000 a=tcap:1 RTP/AVPF ; for the t= a=acap:5 sendonly a=acap:1 label:encoding1 a=lcfg:1 mt=video t=1 m=1|2 a=1,5 pt=1:100,2:101 a=acap:2 label:encoding2 a=lcfg:2 mt=video t=1 m=1|2 a=2,5 pt=1:102,2:103 a=acap:3 label:encoding3 a=lcfg:3 mt=video t=1 m=1|2 a=3,5 pt=1:104,2:105 a=acap:4 label:encoding4 a=lcfg:4 mt=video t=1 m=1|2 a=4,5 pt=1:106,2:107
Figure 1: Initial Offer
The receiver is CLUE capable and responds indicating support of the CLUE channel and indicates the IP Address/Port where the Provider should establish a connection to. It also indicates that it only supports H264 encoding.
v=0 o=bob 2890844730 2890844730 IN IP4 host.example.com s= c=IN IP4 host.example.com t=0 0 m=audio 49920 RTP/AVP 0 a=rtpmap:0 PCMU/8000 ; Accepted SCTP CLUE connection m=application 54321 SCTP 54321 c=IN IP4 192.0.2.1 a=setup:passive a=connection:new a=sctpmap:54321 CLUE 1 ;Accepted configurations a=rmcap:1 H264/90000 ; this is needed for the m= a=tcap:1 RTP/AVPF ; for the t= a=acap:5 sendonly a=acap:1 label:encoding1 a=lcfg:1 mt=video t=1 m=1|2 a=1,5 pt=1:100 a=acap:2 label:encoding2 a=lcfg:2 mt=video t=1 m=1|2 a=2,5 pt=1:102 a=acap:3 label:encoding3 a=lcfg:3 mt=video t=1 m=1|2 a=3,5 pt=1:104 a=acap:4 label:encoding4 a=lcfg:4 mt=video t=1 m=1|2 a=4,5 pt=1:106
Figure 2: Answer
Author's note: In the signaling document the grouping framework [RFC5888] is used to indicate the "m" lines that are under CLUE control. It's not clear whether a=group:CLUE and a=mid is needed at this stage or during the updated-Offer. It could be assumed that the above latent configurations are related to CLUE due to the fact they appear under the m=application SCTP/CLUE line.
On receipt of the SDP Answer the Provider establishes the SCTP connection, performs CLUE version and capability negotiation (not shown) and then sends the initial CLUE Advertisement. In it the Provider advertises a single Capture Scene described by three video captures (i.e. Left,Centre,Right) or a video capture of the entire scene.
Author's note: According to the current CLUE protocol work [I-D.presta-clue-protocol], it's the consumer that sends the first Advertisement. The author believes that the Provider should send the first Advertisement to align with the Offer.
+-----------------------|---------------------------------+ | Capture Scene #1 | | +-----------------------|---------------------------------+ | VC1 | CaptureArea=Left | | | EncodingGroup=EG1 | | VC2 | CaptureArea=Centre | | | EncodingGroup=EG2 | | VC3 | CaptureArea=Right | | | EncodingGroup=EG3 | | VC4 | CaptureArea=All | | | EncodingGroup=EG4 | | CSE(VC1,VC2,VC3) | | | CSE(VC4) | | +-----------------------|---------------------------------+ | EncodingGroups | | +-----------------------|---------------------------------+ | EG1 | EncodeID=encoding1 | | EG2 | EncodeID=encoding2 | | EG3 | EncodeID=encoding3 | | EG4 | EncodeID=encoding4 | +=======================+=================================+
Figure 3: Advertisement
On receipt of the Advertisement the Consumer determines that it wants the three video captures representing left/centre/right. It sends a CLUE Configure to the Provider:
+-----------------------+---------------------------------+ | VC1 | encoding1 | | VC2 | encoding2 | | VC3 | encoding3 | +-----------------------|---------------------------------+
Figure 4: Configure
On receipt of the CLUE Configure the Provider determines that the Consumer wants to see VC1, VC2 and VC3 according to encoding1, encoding2 and encoding3 respectively. The Provider then issues an updated SDP Offer for three additional video streams. Note: The latent configurations have been removed but the latent configuration related to VC4/encoding4 could also be maintained if still available. The grouping framework [RFC5888] is used to indicate that the additional video streams are under CLUE control.
v=0 o=alice 2890844526 2890844526 IN IP4 host.anywhere.com s= a=group:CLUE 1 2 3 c=IN IP4 host.anywhere.com t=0 0 m=audio 49170 RTP/AVP 0 ; Base audio stream a=rtpmap:0 PCMU/8000 ; CLUE channel estab. Req. m=application 49172 SCTP 49172 a=setup:actpass a=connection:new a=sctpmap:49172 CLUE 1 ;Additional video streams m=video 49174 RTP/AVPF 100 a=rtpmap:100 H264/90000 a=label:encoding1 a=mid:1 a=sendonly m=video 49176 RTP/AVPF 102 a=rtpmap:102 H264/90000 a=label:encoding2 a=mid:2 a=sendonly m=video 49178 RTP/AVPF 104 a=rtpmap:104 H264/90000 a=label:encoding3 a=mid:3 a=sendonly
Figure 5: Updated Offer
The Consumer then receives the Updated Offer and confirms with an updated Answer. Media flow for the 3 video streams then starts to flow.
The authors believe that the use of Latent Configurations is an ideal way to indicate CLUE encoding information. It is proposed that the use of Latent Configuration is the preferred way of describing CLUE encoding information.
This template was derived from an initial version written by Pekka Savola and contributed by him to the xml2rfc project.
It is not expected that the proposed changes present the need for any IANA registrations.
It is not expected that the proposed changes present any addition security issues to the current framework.
[RFC2119] | Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. |