<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>

<rfc category="std" docName="draft-kaippallimalil-tsvwg-media-hdr-wireless-01"
     ipr="trust200902">

  <front>
    <title abbrev="Media Header Extension Wireless Networks">Media Header Extensions for Wireless Networks</title>

    <author fullname="John Kaippallimalil" initials="J." surname="Kaippallimalil">
      <organization>Futurewei</organization>
      <address>
      <postal><country>USA</country></postal>
      <email>john.kaippallimalil@futurewei.com</email>
      </address>
    </author>    

    <author fullname="Sri Gundavelli" initials="S." surname="Gundavelli">
      <organization>Cisco</organization>
      <address>
      <postal><country>USA</country></postal>
      <email>sgundave@cisco.com</email>
      </address>
    </author>
    
    <date />

    <workgroup>TSVWG WG</workgroup>


    <abstract>
    <t>Wireless networks like 5G cellular or Wi-Fi experience significant variations in link capacity 
      over short intervals due to wireless channel conditions, interference, or the end-user's movement.
      These variations in capacity take place in the order of hundreds of milliseconds and is 
      much too fast for end-to-end congestion signaling by itself to convey the changes for an application to adapt. 
      Media applications on the other hand demand both high throughput and low latency, and are able to 
      dynamically adjust the size and quality of a stream to match available network bandwidth.
      However, catering to such media flows over a radio link where the capacity changes rapidly requires the 
      buffers and QoS in general to be managed carefully. 
      This draft proposes additional information about the media transported in each packet 
      to manage the buffers and optimize the scheduling of radio resources. 
      The set of information proposed here includes importance of the packet, burst length and time budget 
      to be conveyed by the media application in a new UDP option.
      The metadata in the UDP option is used to provide the wireless network the flexibility to prioritize packets that are essential  
      when the radio capacity is temporarily low, defer packets that can tolerate some additional delay, 
      or even drop packets selectively in more extreme conditions.</t>
      
    <t>This draft defines media metadata, a new UDP option to carry this metadata and the operational aspects 
    for using it between a UDP source and a on-path wireless entity.</t>
      
    </abstract> 
  </front>

  <middle>

    <section anchor="INTRO" title="Introduction">    
      <t>Wireless networks inherently experience large variations in link capacity due to a number of factors.
      These include the change in wireless channel conditions, interference between proximate cells and channels or
      as a result of the end user's movement.
      These variations in link capacity take place in a short time in the order of hundreds of milliseconds.
      End-to-end congestion control at the IP layer does not react fast enough to these changes when a
      combination of high throughput and low latency are required.
      Media packets on the other hand typically demand both high throughput and low latency. 
      The application is able to adapt, but when the feedback signal (i.e., via end-to-end congestion signaling or
      application level feedback) is of low resolution and frequency compared to the changes in the network, 
      the result is that there is no means by which 
      the application can adjust the flow rate just enough, or to signal which
      packet (or group of packets) have priority or which can tolerate more delay.
      If there are short periods of low radio channel capacity, random packet drops may also result in 
      more damage than if a packet dropped is of a lower importance (e.g., encoding of an enhanced layer 
      and not a base layer).
      3GPP has studied enhancements in the wireless network  in <xref target="TR.23.700-60-3GPP"/> for 
      such media applications that demand high bandwidth and low latency.
      Some of the recommendations include providing the wireless network with information on groups of media 
      packets that should be handled similarly (e.g., packets of a video I-frame), the importance of a 
      media packets and others that allow the wireless network to schedule and forward packets more optimally.</t>
      
      <t>Media packets that are fully encrypted and carry fragments of multiple media streams in a packet are not 
      easy to classify since it depends on the sets of media being encoded and the application's
      choices on packetization of the various streams.
      Examining or inferring based on patterns or other heuristics is expensive, unreliable and defeats 
      the goal of minimizing sojourn time in the wireless network.
      The simplest way is to examine metadata inserted by the application as a basis for 
      classification in the wireless network. 
      This is also inline with the recommendations in <xref target="RFC8558"/> that discuss explicit signals
      to on-path network elements.
      <xref target="INFO"/> proposes a set of metadata that the wireless network can use to optimize media 
      packet forwarding in the wireless network.</t>
      
      <t>Metadata inserted by a media application is transported across trusted networks
      between the application server that inserts metadata and the on-path wireless entity that uses it. 
      The transport is designed to allow carrying metadata for a range of media transports including SRTP 
      <xref target="RFC3711"/> and HTTP/3 media over QUIC.
      A new UDP option <xref target="I-D.ietf-tsvwg-udp-options"/> is proposed here to carry the metadata. 
      The trade-off in terms of lookup efficiency, protocol overhead, the constraints for transporting 
      metadata across trusted networks and other related aspects are discussed in <xref target="ARCH"/>.
      </t>
      
      <section>
        <name>Requirements Language</name>
        <t>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 <xref target="RFC2119"/>
          <xref target="RFC8174"/> when, and only when, they appear in
          all capitals, as shown here.</t>
      </section>
    </section>  <!-- end of Introduction section --> 
    

 
    
    
    <section anchor="TERM" title='Terminology'>
    
    <t>The following terms is used in this document:</t>
    
    <t><list style="symbols">
    
    <t>Media Data Unit (MDU) - a set of one or more IP packets carrying a media payload 
    that should be treated as unit in the wireless network.
    For example, packets of an MDU may be of a low priority and all packets may be dropped
    in case of extreme congestion.
    In protocols like RTP, the payload may consist of data of one media type (e.g., a video I-frame) and in 
    protocols like HTTP/3 that carry multiple streams, each stream in the packet can potentially
    carry a payload of different media types.
    In either case, the application should classify the MDU that a packet belongs to and 
    in turn the network applies policies that treat the set of packets of an MDU as a unit.</t>
    
    <t>Importance - The importance of a packet (or group of packets belonging to an MDU) identify 
    the priority of the packet(s), dependency between packet(s) of an MDU to another 
    (e.g., packets of a video P-frame depend on an I-frame) and delivery preferences when packet(s) 
    are delayed due to congestion or temporary lack of wireless resources. The application marks 
    importance (and other metadata) and the wireless network interprets the marking as preferences 
    when handling these media packets under reduced wireless capacity.
    If an application marks all packets with the same priority, the result would be random packet 
    drop in the wireless network in the presence of extreme congestion.</t>
    
    </list></t>

    </section>  <!-- end of Terminology section -->
    
    
    <section anchor="ARCH" title="Architecture">
    <t><xref target = "INTRO"/> has outlined the the issue around changes in link capacity 
    in a wireless network changes and the need for additional information to
    handle such flows in the wireless network. 
    This section provides an end-to-end view of what the wireless network needs to optimize 
    its resource handling and the actions of clients, servers and entities in the network to facilitate it.</t>
    
    <figure anchor="ARCH-FIG" title="Media Metadata in Application and Wireless network">
    <artwork> 
        
        UDP encrypted payload     UDP encrypted payload + metadata     
        +-------------------+     +=========================+
       /                     \   /         _____             \
      /         _____         \ /         (     )             \
     /         (     )     +---V----+    (        )            \
+---V----+    (Wireless)   |Wireless|   (    IP    )       +----o-----+
| Client +---( Network  )--+  Node  +--(   Network  )------+  Server  |
+--------+    (        )   +--------+   (          )       +----------+
(UDP dest)     (_____)                   (       )         (UDP source)
                                          (_____)
                                         
                 Wireless Network                        Appl Network   
            |------------------------|                 |--------------|
                                                                 
    </artwork></figure>    
    
    <t><xref target="ARCH-FIG"/> shows an end-to-end view where a packet containing 
    a media payload from a server (e.g., a media server or relay) is sent to a client 
    (i.e., a wireless end point).
    The general assumption here is that the server and on-path wireless node that serves
    the wireless end point in <xref target="ARCH-FIG"/> are in two networks.
    These two networks share a trust relationship that allows entities in these networks 
    to exchange media metadata.
    The relationship also limits the exposure of the media metadata to authorized entities 
    within the two networks.
    A trusted domain (e.g., as outlined in <xref target="RFC8799"/>) associated to the 
    wireless and application networks with a public key and trust anchors
    within each network have the ability to perform operations to authorize, enroll, 
    and manage nodes with specific policy and roles (i.e., server, wireless node, gateways)
    for managing media metadata handling in a secure manner.
    When the application (server, UDP source) and wireless network are not directly connected, 
    a secure overlay network with encryption MUST be used between the two domains.</t>
    
    <t>The server and client in <xref target="ARCH-FIG"/> have signalled to setup the 
    media session (e.g., using SDP, HTTP) prior to sending media packets.  
    The UDP source (e.g., an Application Server) is responsible for inserting relevant metadata 
    based on the media content of the packet and using the metadata format specified in 
    <xref target="INFO"/>.
    The metadata in the UDP option is delivered to the wireless node (e.g., a 3GPP UPF) 
    that classifies it using the metadata in the packet along with other network policies.
    The metadata and its transport are designed to be efficient in processing and byte overhead 
    per packet. 
    The metadata is expected to work with any UDP media including RTP, SRTP and HTTP/3.
    Metadata parameters are encoded in binary format for compact representation. 
    Details are in <xref target="INFO"/>.</t>
    
    <t>The UDP option and metadata defined in this specification must only be exchanged 
    between entities that are trusted.
    The server (UDP source) and Wireless Node (access router in wireless network) 
    are configured with data that allow establishment of trust between the entities and
    the network(s) in between prior to the exchange of metadata using the UDP option 
    defined in this specification.
    When there are insecure network segments in between, all packets that carry the 
    metadata in the MED UDP option must be secured with encryption
    between these segments (e.g., secure GRE/VXLAN tunnel) or at a flow level (e.g., with 
    MASQUE proxies).
    <xref target="DEPLOYMENT"/> describes a few common deployments.</t>
    
    <t>The application server (server in <xref target="ARCH-FIG"/>) is responsible for 
    inserting the metadata in the UDP option.
    The application server determines the importance and other metadata parameters based on 
    the type of media encoded as well other information (e.g., configured information on 
    destination wireless network, live feedback from the session).
    The application encrypts the payload (i.e., media content) in the UDP packet and adds 
    the MED UDP option to be processed in the wireless network.
    Entities on-path do not process the UDP option, but security gateways or other network entities
    at the boundary of a trust domain may remove the option if there is an 
    untrusted network segment on-path.
    The wireless node receives UDP packet, inspects the metadata in the UDP option and applies local 
    policies to the metadata to derive optimal scheduling and forwarding on the wireless path.
    The wireless node does not examine the content of the packet which may use various encrypted 
    application transports like SRTP cryptex, HTTP/3 and may have variable number of media streams.</t>
    
    </section>  <!-- end of Architecture section -->
    
    
    <section anchor="INFO" title="Media Metadata">
    <t>Media packets are encoded and formatted to enable efficient and reliable processing of 
    the data at both the encoding and decoding endpoints.
    Media may consist of audio, live video, static pictures and overlaid objects among others.
    Each of these may have different tolerance to delays in the network, resiliency 
    (i.e., the ability to recover from loss) or even subjective importance (e.g., a loss of a 
    video base layer I-frame packets is more significant than enhanced layer P-frame).
    Media encoding is evolving continually and modern codecs use complex prediction structures 
    and make various dynamic decisions in the encoding process.
    However, it is expected that there are differences in priority, delay and acceptable loss 
    across sets of packets. 
    This is information that the wireless network can use to provide a better forwarding service 
    especially when there is a high demand of network resources and poor radio conditions.</t>
    
    <t>The wireless network, unlike encoders and decoders, is not concerned with decoding the media, but rather 
    on deciding the best forwarding options when its link capacity is limited.
    Since applications may deliver media across 5G, WiFi or wired networks the attempt is
    for a minimal set of metadata that is useful for optimizing handling of media packets. 
    The end-to-end aspects and metadata parameters are described below.</t>
    
    <section anchor="CONSIDERATIONS" title="Design Criteria">
    <t>A media application that uses this specification provides a set of metadata 
    about the media packet that an authorized wireless network can inspect 
    and use to optimize handling during adverse radio conditions.
    Metadata for media packets are carried in a new UDP option discussed further in 
    <xref target="TRANS"/>.</t>
    
    <t>Metadata defined in <xref target="PARAMETERS"/> is broad enough to be applied 
    regardless of whether the application uses RTP, HTTP or another application transport
    protocol.</t>    
    
    <t>The media application(server, or UDP source) is responsible for and retains control 
    over the metadata that is inserted at the UDP source. 
    The media application only inserts metadata if the destination (wireless end point) is
    a device in a trusted wireless network.
    For example, a range of IP addresses that belong to the trusted wireless network.
    The wireless network verifies that a packet with MED UDP option metadata has originated
    from a trusted server.
    The wireless network that inspects metadata may defer or drop packets to optimize 
    the use of radio resources. 
    
    The application may receive out of band feedback on the quality and other statistics of 
    the data received at the UDP destination (e.g., RTCP receiver report). 
    The application may use heuristics 
    or other algorithms on the feedback, explicit network congestion information, 
    encoding characteristics of the media or other aspects of the data to obtain the 
    desired handling in the wireless network.
    Details of the mechanisms an application uses is not in the scope of this document.
    The feedback provided allows the application server (or UDP sender) to remain in control and 
    determine if there is any potential malicious or incoherent handling of media packets.
    In such cases, the the application server (or UDP sender) can revert to marking all packets 
    with the same level of importance.</t>
    
    <t>The on-path wireless network entity that inspects metadata does not rely on packets 
    arriving in order.
    The metadata itself should provide sufficient information and the network entity should 
    factor in these assumptions when calculating jitter and burst length using the 
    metadata in each packet.
    For example jitter may be calculated as a moving average across multiple packets and
    burst length should compensate for potential out-of-order packet arrivals especially 
    towards the tail end of a burst.</t>
    
    <t>Metadata is transported in a new UDP option, MED, defined in <xref target="TRANS"/>.
    The metadata in MED UDP option is carried in each packet that the application server (or UDP source) 
    inserts.
    Thus, the wireless entity keeps some state information to use the metadata.
    For example, a sequence counter is used to track the set of packets that belong 
    to a media data unit (MDU), and a series of timestamps may be used to derive jitter.
    The different metadata parameters are described below in <xref target="PARAMETERS"/>.</t>
    
    <t>This specification describes one set of metadata described as a profile.
    A Profile field makes this specification extendable to future specifications that  
    describe a new metadata profile.</t>    
    
    </section> <!-- end of sub-section on Design Criteria  --> 
     
    
    <section anchor="PARAMETERS" title="Metadata Parameters">
    <t>The media application provides a set of metadata about the content of the packet
    and the wireless network inspects the metadata and uses to optimize handling 
    during adverse radio conditions.
    Some information that is useful to wireless networks include the importance 
    of a packet (or a group of packets), the number of packets in a burst, timestamps and 
    acceptable end-to-end latency of the packet.
    Importance of a packet (or group of packets) is useful to provide some flexibility 
    to the radio scheduler to prioritize packets that are essential during low capacity intervals 
    and to defer packets that can tolerate some additional delay, or even drop the packet.
    For example, if some set of packets carry a stored video image that is stored in advance, 
    it may be able to tolerate some additional delay over a real-time video encoding 
    carried in another stream.
    Only the media application is able to provide such information since even inspecting 
    a clear media header (e.g., RTP packet carrying an I-frame fragment) does not provide 
    the on-path network entity with sufficient information as whether that represents live media,
    the length of a data burst or the actual delay budget where the packet is useful for decoding.</t>
    
    <t>The parameters below identify a minimum set that an on-path network entity 
    can use for optimizing the use of wireless network resources.</t>
    
    
    <section anchor="PROFILE" title="Profile">
    <t>This parameter allows for more metadata profiles to be carried by the 
    MED UDP option. This specification only defines one profile.</t>
    
        <t><figure><artwork><![CDATA[
           0
           0 1 2 3 4 
          +-+-+-+-+-+ 
          | Profile |
          +-+-+-+-+-+         
        
       Value      Meaning
       -----------------------------------------------------
         0        RESERVED
         1        Basic - defined in this specification
         2-31     Unassigned (assignable by IANA)
         ]]></artwork></figure></t> 
         
    <t>Specifications may define a new metadata format in future using one 
    of the unassigned values.</t>             
    </section>
    

    <section anchor="TSTAMP" title="Timestamp">
    <t>Timestamp contains the wallclock time (absolute date and time) of transmission of the 
    packet and is represented in a compact format where the first 16 bits represent seconds 
    relative to 0h UTC on 1 January 1900, and the second 16 bits represent the 
    fractional part of a second.</t>
    
        <t><figure><artwork><![CDATA[
        0                   1                   2                   3
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                           Timestamp                           |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+         
        
        ]]></artwork></figure></t>
        
    <t>A pair of timestamps S2 and S1 represent a time interval between them of (S2 - S1) that
    have sequential Packet counter values.
    The transmission time contained in the field may be used for network jitter calculations.</t>
    </section> 
       
    
    <section anchor="SEQ" title="Media Data Unit Sequence">
    <t>The Media Data Unit (MDU) sequence is a cyclical counter that has the same 
    value for a set of packets identified by an application to 
    be treated as a unit (i.e., an MDU), and is incremented for the next
    MDU.</t>
    
        <t><figure><artwork><![CDATA[
           0
           0 1 2 3 4 5 6 7
          +-+-+-+-+-+-+-+-+
          | MDU Sequence  |
          +-+-+-+-+-+-+-+-+          

        ]]></artwork></figure></t> 
           
    <t>The wireless network uses this field to provide consistent treatment to the 
    set of packets that belong to the same MDU.
    In some cases, based on the priority and tolerance to delay and loss, the 
    wireless network may delay or drop the sequence of packets
    that has the same MDU sequence value.
    An MDU sequence of 8-bits means that there can be upto 256 (2^8) concurrent 
    MDU sequences for a UDP source/destination pair that a wireless network 
    can distinguish.</t>
    <t>The MDU sequence value is not itself associated to any set of media 
    properties. These media properties are defined in Importance, burst length 
    and delay in the sections that follow.</t>
    </section> 
    
    
    <section anchor="PKT" title="Packet Counter">
    <t>This parameter provides a counter starting at "0" that is incremented for each 
    subsequent packet belonging to a Media Data Unit (MDU).</t>
    
        <t><figure><artwork><![CDATA[
        0                   1                   2 
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                  Packet Counter               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+       

        ]]></artwork></figure></t>
    
    <t>The delay between subsequent packets of an MDU may be averaged or otherwise used to 
    extrapolate jitter in the arrival stream at the wireless node.</t>    
    </section>  
    
    
    <section anchor="IMPORTANCE" title="Importance">
    <t>Importance represents the media characteristics of the set of packets that 
    that form a media data unit (MDU) relative to the characteristics of another 
    MDU.
    The characteristics represented in importance are the priority level, 
    the ability to tolerate delay and transmission errors.</t>
    
        <t><figure><artwork><![CDATA[
           0
           0 1 2 3 4 5 6 7
          +-+-+-+-+-+-+-+-+
          | L |  D  |  P  |
          +-+-+-+-+-+-+-+-+         
        
        Value      Meaning
       -----------------------------------------------------
          L        Delay Tolerance
                     00   limited value if delayed
                     01   should be forwarded even if delayed
          D        Inter-MDU Dependency
                    000   No dependency Information provided
                    001   Independent
                    010   Base MDU
                    011   Enhanced MDU (dependent on previous base MDU)
          P        Priority level
                    001   high priority
                    010   medium priority
                    100   low priority 
                          
        ]]></artwork></figure></t> 
           
    <t>The application determines the priority of a packet in terms of how 
    critical the loss of packets of an MDU is for a destination/decoding end.
    
    Some media frames may be extremely important but not as sensitive to delay, others 
    may be important and should be delivered even past a delay deadline. There are 
    various other factors such as packets with medium or lower priority and varying 
    tolerance for delay that need to be considered.</t>
    
    <t>The dependency flags indicate whether the packet is independent or dependent on 
    packets of other MDUs. 
    TBD - specification/behavior of the different values of priority.</t>
    
    </section>
    
    
    <section anchor="BURST" title="Data Burst">
    <t>The data burst field represents the number of byptes of data in a continuous burst of packets.
    This may be the result of a large amount of media encoded at a particular time.
    In many cases, the distribution of packets tend to be heavy tailed and this information, 
    if available to the wireless network at the beginning of the burst, is useful to 
    let the wireless network know so that it can plan for radio resources in advance.
    In RTP streams, a burst may for example represent the number of bytes to send 
    in a video I-frame.
    However, in more complex encodings where the media in a packet belongs to multiple
    streams (e.g., AR/VR), the application should determine the length of a burst of data.</t>
    
        <t><figure><artwork><![CDATA[
        0                   1                   2                   3
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                           Data Burst                          |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+       

        ]]></artwork></figure></t>
    
    <t>If the value is set to "zero", it indicates that the application does not 
    provide the size of the data burst.
    All other values indicate the actual size of the data burst in bytes upto a maximum of 
    2^32 bytes.
    The wireless node keeps track of the number of bytes in each packet payload to determine 
    the total number of bytes in a burst.</t>   
    </section>
    
    
    <section anchor="BUDGET" title="Delay Budget">
    <t>The delay budget represents an upper bound in milliseconds between the 
    reception of the first packet of the MDU to the last packet of the MDU.</t>
    
        <artwork><![CDATA[
           0
           0 1 2 3 4 5 6 7
          +-+-+-+-+-+-+-+-+
          |     Delay     |
          +-+-+-+-+-+-+-+-+
         
        ]]></artwork>  
        
    <t>The delay budget along with data burst and importance (priority) is used
    to convey to the wireless network in advance the duration of time over which 
    the burst of packets is sent.
    This can allow the wireless scheduler to plan for the appropriate level of 
    resources.</t>  
    </section>
     
    </section> <!-- end of sub-section on Metadata Parameters -->   
    
    
    <section anchor="HANDLING" title="Metadata Handling">
    <t>Metadata in this specification consists of the set of parameters in 
    <xref target="PARAMETERS"/> and always uses Profile value of "1".</t>
    
    <t>The application server (UDP source) inserts the metadata into each packet.
    The application server should only prepare metadata in UDP MED option if the 
    UDP destination belongs to a wireless network that has a trust relationship
    with the application network.
    Importance, data burst and delay budget parameters are the same for all packets of 
    an MDU (identified by an MDU sequence value for the UDP source/destination).
    The timestamp indicates the sending time of each packet while the packet counter
    is incremented for each packet in an MDU.</t>
    
    <t>The wireless node that receives metadata in the UDP MED option should 
    verify that it orinated from an application network with which it has a 
    trust relationship.
    The metadata is used to prioritize, defer or drop packets of an MDU
    when radio resources are limited.</t>
    
    </section>  <!-- end of Metadata processing/handling section -->

    </section> <!-- end of chapter 4 - Media Metadata section -->
 
    

    <section anchor="TRANS" title="Metadata Transport">    
    <t>Transport of metadata between the application and wireless network may be based on 
    one of several protocol options but it would be preferable to have one mechanism (or limited number) so 
    that wireless network entities do not have to support a large number of options. 
    Some considerations include the ease with which an application can encode the metadata in a 
    transport header, compactness and efficiency for lookup in the wireless network as this is
    applied per packet, and the security of the metadata itself (not unique to wireless networks).
    In this specification, the media metadata is transported in UDP options.
    UDP transport of metadata is efficient and applicable to not only HTTP/3 media but also RTP/SRTP for any 
    further extensions related to wireless networks.</t>
    
    <!-- only long format in this version -->
    <t>A new UDP option, MED, that conforms to <xref target="I-D.ietf-tsvwg-udp-options"/> is defined to carry 
    media metadata.
    <xref target = "MED-long"/> shows the parameters in the MED UDP option. 
    The Kind value for this option is (TBD - IANA assigned).
    The MED option is a SAFE option as it does not alter the UDP data payload in any manner and should therefore 
    be assigned a value in the 0..191 range as defined in <xref target="I-D.ietf-tsvwg-udp-options"/>.
    The length of this option can be variable since another specification can define a new media "Profile" of
    a different length.
    </t>
  
         <figure anchor="MED-long" 
          title="MED UDP Option in Long Format">
              <artwork><![CDATA[
        0                   1                   2                   3
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |   Kind=TBA2   |    Len=17     | RES | Profile |  Importance   |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                           Timestamp                           |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       | MDU Sequence  |              Packet Counter                   |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                           Data Burst                          |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |    Delay      |
       +-+-+-+-+-+-+-+-+
    
              ]]></artwork>
         </figure> 
             
    <t>The MED UDP option in this specification has a size of 17 bytes. 
    In this specification, the Profile option MUST be set to "1".
    
    Following the length field, 3 bits are left reserved (RES) for future use.
    The MDU sequence indicates the set of media data unit packets of the UDP/IP datagram 5-tuple). 
    The MDU sequence value should be the same for all packets that form a media data unit (MDU)
    Other UDP/IP datagrams (e.g., from the same server to another client) that have the same value of 
    MDU sequence represents a different MDU set.
    The Importance of a packet includes its priority relative to other MDUs of the same UDP/IP datagram (5-tuple).
    The Timestamp value in this option represents the transmission time of the packet and along with Packet counter 
    may be used to derive latency and jitter information.
    For a media flow/sequence identified by IP 5-tuple, the MDU sequence is incremented for every 
    subsequent MDU.
    The Packet counter represents a sequence of packets of an MDU and may be used along with timestamps to derive jitter.
    The wireless node does not attempt to sequence packets arriving out of order using the Packet counter.
    The Data burst when provided indicates the number of bytes of the MDU and this value remains the same for all 
    packets of the MDU.
    The Delay field conveys the upper bound in milliseconds between the 
    reception of the first packet of the MDU to the last packet of the MDU.
    All packets of an MDU have the same value of Delay. </t>   
    
    <t>The UDP source (application server) MUST NOT add the UDP MED option if the 
    UDP destination (wireless client) does not belong to a wireless network that has a trust relationship
    with the application network.
    The wireless network MUST NOT use metadata in the UDP MED option of the 
    UDP source (application server) does not belong to an application network that has a
    trust relationship with it.
    The wireless network MUST remove the UDP MED option before forwarding the packet to the
    wireless node regardless of whether it originated from a trusted or untrusted network.
    </t>
    
    <t>A security gateway at the boundary of an application network or wireless network that share 
    a trust relationship should inspect the UDP MED option to ensure that the origin/destination 
    network comply with the policies of the domain.</t>
        
    </section>   <!-- end of Metadata Transport section --> 
    
    
    
    <section anchor="DEPLOYMENT" title="Common Deployments">
    <t>This section provides a few examples of common deployments and 
    the use of the MED UDP option to carry media metadata.</t>
    
    <section anchor="DC" title="Data Center Deployment">
    
    <t>In this deployment scenario, the UDP source (i.e., App Server) and 
    the wireless network entity (i.e., Wireless Node) are within the same 
    Data Center and within a secure network.</t>
    
 	<figure anchor="DC-FIG" title="Server and Wireless entity in Data Center">
     <artwork>

            Wireless Network Provider               App Provider
         |----------------------------------|     |---------------|
            ______              +--------------------------------+
           (      )             |  +--------+       +----------+ |
+------+  (Wireless)            |  |Wireless|       |   App    | |
|client/---------------------------/        /=======/  Server  | |
+------+  (Network )            |  |  Node  |       +----------+ |
           (______)             |  +--------+                    |
                                +--------------------------------+
                                             Data Center          
                                            
                               /======/ UDP Packet with MED option
                               /------/ UDP Packet (no MED option)
            
 	</artwork></figure>
 	
 	<t>The UDP MED option is inserted by the Application Server and forwarded.
 	The network in between is within the boundaries of the trust domain.
 	The Wireless Node processes the metadata in the MED UDP option and before 
 	forwarding the packet to the client (wireless end point), the MED UDP option
 	is removed.</t>
    </section>
    
    
    <section anchor="SECGW" title="Security Gateways">
    
    <t>In this deployment scenario, the UDP sender (i.e, App Server) and the 
    wireless network entity (i.e., Wireless Node) have a trust relationship between
    them and security gateways are used to encrypt all traffic traversing an insecure 
    network segment in between.</t>
    
	<figure anchor="SECGW-FIG" title="Security Gateways between Server and Wireless network">
    <artwork>
    
            Wireless Network Provider            Application Provider
         |------------------------------|        |------------------|
            ______
           (      )   +--------+   +---+         +---+    +--------+
+------+  (Wireless)  |Wireless|   |Sec|_________|Sec|    |  App   |
|client/--------------/        /===+GW O____+____O GW+====/ Server |
+------+  (Network )  |  Node  |   |   |    |    |   |    +--------+
           (______)   +--------+   +---+    |    +---+
                                            V
                                      Secure Tunnel  
                                            
                                 /======/ UDP Packet with MED option
                                 /------/ UDP Packet (no MED option)
                                                                     
	</artwork></figure>   
	
	<t>The UDP MED option is sent between App Server and Wireless Node.
	The Wireless Node removes the MED UDP option before forwarding the packet onwards.</t> 
    
    </section>
    
    </section>  <!-- End of Common Deployments Section -->
    
 
    

    
    
    <section anchor="Acknowledgements" title="Acknowledgements">
    <t>Thanks to Tiru Reddy for extensive discussions on security, metadata 
    and UDP options formats in this draft. 
    Thanks to Dan Wing for input on security and reliability of messages for this draft.
    Xavier De Foy and the authors of this draft have discussed the
    similarities and differences of this draft with the MoQ draft for carrying media metadata.</t>
    </section>
      
    
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <t>IANA request to assign new kind from UDP option registry to be set by IANA for 
      <xref target="I-D.ietf-tsvwg-udp-options"/>.</t>
      
              <artwork><![CDATA[
   Kind    Length       Meaning
   -----------------------------------------------------
   TBA1      17         Media Metadata (MED)

              ]]></artwork>  
      
    </section>
    
    <section anchor="Security" title = "Security Considerations">
    <t>Metadata in the UDP option MED must only be exchanged between entities that have 
    a trust relationship that permits sending/receiving this UDP option.</t>
    
    <t>Metadata in the MED UDP option MUST NOT be sent to a wireless network that does
    not have a trust relationship with the application network (UDP source).
    A wireless network that receives a MED UDP option MUST verify that the origin of 
    the metadata is from a trusted network.
    After processing the MED option, the wireless network node MUST delete the option 
    before forwarding the packet.</t>
    
    <t>If the application network that sends the media packet with MED UDP option and 
    the wireless network that receives the UDP packet/MED option are separated by an 
    untrusted network, the traffic must be encrypted across the untrusted network segment.
    Security gateways at the boundary of the origin /destination networks SHOULD inspect to
    verify that the MED UDP option to verify that the origin or destination of the packet
    with UDP MED option are across the two trusted networks.</t>
      
    </section>
    

<!-- TO BE ADDED IN FUTURE REVISIONS    
    <section anchor="CONTRIBUTING_AUTH" title="Contributing Authors">
    </section>
    -->
    

  </middle>

  <back>
      <references title="Normative References"> 
        <?rfc include="reference.RFC.2119"?> 
        <?rfc include="reference.RFC.8174"?> 
        <?rfc include="reference.I-D.ietf-tsvwg-udp-options"  ?>       
               
      </references>
 
      <references title="Informative References">
         <?rfc include="reference.RFC.3711"?>
         <?rfc include='reference.RFC.8558'?>
         <?rfc include='reference.RFC.8799'?>
         <?rfc include="reference.I-D.iab-path-signals-collaboration"?>
        
       <reference anchor='draft-ietf-avtcore-cryptex-08'>
         <front><title>Encrypting RTP Header Extensions and Contributing Sources</title>
         <author><organization>IETF</organization></author>
         <date month="August" year="2022"/>
         </front>
       </reference>        
      




        
        
        <reference anchor='TR.23.700-60-3GPP'>
          <front>
          <title>Study on XR (Extended Reality) and media services (Release 18)</title>
          <author>
          <organization>
          3rd Generation Partnership Project (3GPP)
          </organization>
          </author>
          <date month="August" year="2022"/>
          </front>
        </reference>              
       
      </references>
 
 
<!-- TO BE UPDATED LATER
    <section>
      <name>Appendix 1 [REPLACE/DELETE]</name>
      <t>This becomes an Appendix [REPLACE]</t>
    </section>


    <section anchor="Acknowledgements" numbered="false">
      <name>Acknowledgements</name>
      <t>This template uses extracts from templates written by Pekka Savola, Elwyn Davies and 
        Henrik Levkowetz. [REPLACE]</t>
    </section>
    
    <section anchor="Contributors" numbered="false">
      <name>Contributors</name>
      <t>Thanks to all of the contributors. [REPLACE]</t>
    </section>
-->
    
 </back>
</rfc>
