<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.2.13 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>

<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>

<rfc ipr="trust200902" docName="draft-ietf-mboned-mnat-00" category="std">

  <front>
    <title abbrev="MNAT">Multicast Network Address Translation</title>

    <author initials="J." surname="Holland" fullname="Jake Holland">
      <organization>Akamai Technologies, Inc.</organization>
      <address>
        <postal>
          <street>150 Broadway</street>
          <city>Cambridge, MA 02144</city>
          <country>United States of America</country>
        </postal>
        <email>jakeholland.net@gmail.com</email>
      </address>
    </author>

    <date year="2021" month="February" day="01"/>

    <area>Ops</area>
    <workgroup>Mboned</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>This document defines a method for a network to maintain Network Address Translation address mappings for the transport of globally addressed multicast traffic within a network that can’t otherwise forward the globally addressed traffic.
A new Multicast Network Address Translation (MNAT) service is defined to communicate the address mappings to ingress and egress points within the network, and considerations for operation of the MNAT service are described.</t>



    </abstract>


  </front>

  <middle>


<section anchor="introduction" title="Introduction">

<t>Network Address Translation is very widely used for unicast traffic in a variety of networks and according to a variety of mechanisms.
<xref target="RFC2663"/> is recommended reading for background on the ways unicast NAT is used.</t>

<t>The handling of multicast traffic can pose a variety of additional problems for a network, some of which can be mitigated or avoided if traffic can be mapped to a different address space than its original addressing.
This document defines a new service, Multicast Network Address Translation (MNAT) as a mechanism to administer network address mappings for multicast traffic within a network, for the purpose of working around various addressing-related issues.
An overview of some of the motivating use cases that can be resolved by network address remapping for multicast traffic is given in <xref target="motivation"/>.
An explanation of the protocol operation is given in <xref target="protocol"/>.</t>

<t>Messaging to and from the MNAT service is defined with RESTCONF <xref target="RFC8040"/> using the YANG <xref target="RFC7950"/> model in <xref target="model"/>.</t>

<t>Unlike traditional unicast NAT, MNAT performs address translation at both an ingress point to the network (where the traffic is transformed to use an address scheme local to the network), and also at an egress point from the network (where the traffic is transformed back to the original address scheme for further forwarding, or for further processing by a receiving application).</t>

<section anchor="background" title="Background">

<t>The reader is assumed to be familiar with the concepts and terminology regarding source-specific multicast as described in <xref target="RFC4607"/> and the use of IGMPv3 <xref target="RFC3376"/> and MLDv2 <xref target="RFC3810"/> for group management of source-specific multicast channels, as described in <xref target="RFC4604"/>.</t>

<t>The reader is also assumed to be familiar with the concepts and terminology for RESTCONF <xref target="RFC8040"/> and YANG <xref target="RFC7950"/>.</t>

<t>The reader is also assumed to be familiar with the use of DNS-SD <xref target="RFC6763"/> for discovery of services provided by the network to end hosts.</t>

</section>
<section anchor="terminology" title="Terminology">

<texttable>
      <ttcol align='right'>Term</ttcol>
      <ttcol align='left'>Definition</ttcol>
      <c>(S,G)</c>
      <c>A source-specific multicast channel, as described in <xref target="RFC4607"/>. A pair of IP addresses with a source host IP and destination group IP.</c>
      <c>egress node</c>
      <c>A MNAT client operating at a point where NATted multicast traffic exits the network (close to the receiver)</c>
      <c>ingress node</c>
      <c>A MNAT client operating at a point where multicast traffic enters the network and gets NATted (close to the sender)</c>
      <c>MNAT client</c>
      <c>A client using the ietf-mnat YANG model via RESTCONF, or a client with equivalent signaling to an MNAT service.</c>
      <c>NATted traffic</c>
      <c>Multicast traffic that has been translated to use addressing or encapsulation assigned locally within the network, rather than its original global addressing.</c>
      <c>SSM</c>
      <c>Source-specific multicast, as described in <xref target="RFC4607"/></c>
</texttable>

<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 <xref target="RFC2119"/> and <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t>

</section>
<section anchor="motivation" title="Motivation">

<t>This section lists use cases where a global (S,G) may not be possible to transport within a network, requiring the use of some kind of encapsulation or address translation in order to adequately communicate the group membership for packet replication within the network, or in order to perform the forwarding for the subscribed traffic within the network.</t>

<t><list style="numbers">
  <t>Global IPv6 (S,G)s subscribed from within an IPv4-only network, or global IPv4 (S,G)s subscribed from within an IPv6-only network.</t>
  <t>Networks with legacy devices that support only IGMPv2 or MLDv1, or otherwise do not support SSM and cannot discover the external sources without the use of non-standard services since interdomain any-source multicast has been deprecated (see <xref target="RFC8815"/>).</t>
  <t>Networks that ingest external multicast traffic in a way that the route to the source of the traffic does not go through the ingest point may need to use a different source so that the Reverse Path Forwarding (RPF) can find the correct network location for the ingest.</t>
  <t>Networks that provision multicast transport and packet replication channels with static routing instead of dynamic tree-building protocols like PIM-SM <xref target="RFC7761"/>.</t>
  <t>Networks using VLAN <xref target="IEEE-802.1Q"/> for traffic segregation and has Layer 2 access devices that assign VLAN tags according to MAC addresses will get MAC address collisions among multicast groups.  Because the bits used for the multicast addresses come from the bottom 23 bits of the destination group address as described in <xref target="RFC1112"/> and those bits can collide between groups, especially in SSM.  The technological limitations of VLAN assignment using MAC addresses at Layer 2 breaks the traffic segregation of multicast traffic for different services in such devices.</t>
</list></t>

<t>A note elaborating on the use of static routing for multicast groups:</t>

<t>Some networks have found that there are good use cases to deliver a limited set of packet-replicating flows, including sometimes the use of externally sourced multicast traffic, but have struggled with the operational complexity of operating a dynamic tree-building system based on PIM-SM <xref target="RFC7761"/>.
Operating an MNAT service can allow these networks to provide for the limited use of packet-replicating data channels while keeping the operational complexity of handling a dynamically changing set of channels confined to a single service that implements their business logic for admission control, rather than trying to apply access control lists for group membership propagation spread across the network.</t>

</section>
<section anchor="notes-for-contributors-and-reviewers" title="Notes for Contributors and Reviewers">

<t>Note to RFC Editor: Please remove this section and its subsections before publication.</t>

<t>This section is to provide references to make it easier to review the development and discussion on the draft so far.</t>

<section anchor="venue" title="Venues for Contribution and Discussion">

<t>This document is in the Github repository at:</t>

<t>https://github.com/GrumpyOldTroll/draft-ietf-mnat</t>

<t>Readers with feedback are invited to open issues and send pull requests for this document.</t>

<t>Please note that contributions may be merged and substantially edited, and as a reminder, please carefully consider the Note Well before contributing: https://datatracker.ietf.org/submit/note-well/</t>

<t>Substantial discussion of this document should take place on the MBONED working group mailing list (mboned@ietf.org).</t>

<t><list style="symbols">
  <t>Join: https://www.ietf.org/mailman/listinfo/mboned</t>
  <t>Search: https://mailarchive.ietf.org/arch/browse/mboned/</t>
</list></t>

</section>
<section anchor="implementation-status" title="Implementation status">

<t>There is an implementation prototype (MIT-licensed) at:</t>

<t><list style="symbols">
  <t>https://github.com/GrumpyOldTroll/mnat</t>
</list></t>

<t>Pull requests, comments, testing and deployment reports, etc. are very welcome.  Contributors before the final stages of RFC publication will be credited in this document unless requested otherwise.</t>

</section>
</section>
</section>
<section anchor="protocol" title="Protocol Operation">

<section anchor="overview" title="Overview">

<t>The use of MNAT within a network is defined in terms the folowing entities:</t>

<t><list style="symbols">
  <t>MNAT service</t>
  <t>ingress nodes</t>
  <t>egress nodes</t>
</list></t>

<t>Address translation is performed at the ingress (closest to the sender) and egress (closest to the receiver) nodes.
Ingress is where an external (S,G) is mapped to locally assigned address mapping before being forwarded for transport within the network.
Egress is where the traffic received on locally assigned addresses is translated back to the corresponding external (S,G) address before being forwarded for further transmission or processed by a receiving application.</t>

<t>The MNAT service maintains the mapping between external (S,G)s and the local network addresses used to transport traffic of those (S,G)s within the network.
The address mapping is performed according to the needs of the network operating the MNAT service, to satisfy whatever constraints and restrictions may be necessary or desirable according to the operational considerations within that network.
Some example considerations that have motivated the design of MNAT are described in <xref target="motivation"/>.</t>

<t>Ingress and egress nodes communicate with the MNAT service according to the schema defined by the YANG model in <xref target="model"/>.
Based on the messages exchanged with the MNAT service, each ingress or egress node maintains an up-to-date table of the mappings between the external (S,G)s and the locally assigned addresses for transport within the network.
The table of mappings is used to perform the corresponding network address translations.</t>

<t>TBD: probably add a diagram here.
Probably something roughly similar to page 7 of the IETF 108 mboned presentation touching on this: https://www.ietf.org/proceedings/108/slides/slides-108-mboned-status-update-on-multicast-to-the-browser-00.pdf#page=7</t>

<section anchor="virtual" title="Egress Node Operational Modes">

<t>Egress nodes can run in at least two separate modes of operation.</t>

<t>One of the modes is “bump in the wire”, which refers to a node that receives traffic using the network-assigned locally chosen addresses, and translates the traffic back to the associated externally addressed (S,G) before forwarding the traffic along the rest of the network paths to the receiving applications that tried to join the external (S,G).</t>

<t>The second mode is “bump in the host”, which refers to a virtual node operating inside a client application.</t>

<t>As a “bump in the host” egress node, the virtual egress node can discover and connect to the MNAT service from a receiving application.
The receiving application would then use the knowledge about the address mapping within the network to perform a join for the mapped addresses in the local network, rather than for the external (S,G).
The payloads of the traffic received with the locally mapped addresses are treated by the application as though they arrived with the external (S,G) addressing.</t>

<t>A common scenario for a bump in the wire egress node deployment might be to have egress nodes operating in Customer Premises Equipment (CPE), such as a Cable Modem or Wi-Fi router inside the home of a customer to a multicast-capable Internet Service Provider (ISP).
In this scenario, the egress node discovery mechanism for the MNAT service might be a static configuration for the MNAT service’s hostname, pushed by the ISP to the CPE devices.</t>

<t>For a bump in the host egress node, the discovery of the MNAT service might either operate via DNS-SD <xref target="RFC6763"/> using a search domain for the ISP distributed to hosts via a DHCP Domain Search option <xref target="RFC3397"/>, or via configuration instructions the ISP gives to their customers to configure a search domain for their devices, or to configure the MNAT service’s hostname for that ISP in their applications.</t>

</section>
</section>
<section anchor="service-discovery" title="Service Discovery">

<t>It is RECOMMENDED that egress devices in end-user operating systems or applications use DNS-SD <xref target="RFC6763"/> by default to discover an MNAT service within their containing networks.
However, a network may require the use of other mechanisms, including options such as manual configuration, so implementors are advised to offer manual configuration options in addition to automatic discovery with DNS-SD.</t>

<t>As long as an MNAT client can find a valid hostname to use, it can connect to the given MNAT service and monitor changes to the address assignments within the network.</t>

<section anchor="detecting-invalid-services" title="Detecting Invalid Services">

<t>TBD: recommendations for noticing and discontinuing use of MNAT services that report mappings that don’t correspond to the mappings apparently in use in the client’s local network (particularly from egress nodes).</t>

</section>
</section>
<section anchor="restconf-bootstrap" title="RESTCONF Bootstrap">

<t>TBD: describe the RESTCONF validation and bootstrapping steps.
Use the same section name from I-D.draft-ietf-mboned-dorms as a template, assuming it passes a wider review.</t>

</section>
<section anchor="message-handling" title="Message Handling">

<section anchor="notification-subscription" title="Notification Subscription">

<t>When possible, changes to the group assignments should be communicated with subscriptions to data model updates using a server push mechanism, for example as described in <xref target="RFC8641"/>.</t>

<t>Where clients or servers do not support server push updates, long polling can be used instead to provide timely updates.  See <xref target="RFC6202"/> for an explanation of the approach and a discussion of its pros and cons.</t>

<t>If long polling and server push are both unavailable, MNAT clients may need to poll the server to monitor updates instead.
This approach is likely to encounter delays in the detection of changes to mapping decisions within the MNAT service, but can be used as a last resort for providing multicast connectivity where the use of MNAT is required by a network to enable multicast forwarding.</t>

</section>
<section anchor="watcher-keys" title="Watcher Keys">

<t>MNAT clients open a persistent connection to the MNAT service and request allocation of a watcher key with the get-new-watcher-key Remote Procedure Call (RPC).
Watcher keys are identifiers chosen by the MNAT service and communicated to client nodes in the response to a successful get-new-egress-key RPC.
Watcher keys SHOULD be based on a random value and unique per new key requested.</t>

<t>Egress nodes communicate an interest in global (S,G)s by posting updates to the egress-global-joined container under a watcher with id equal to their watcher-key.</t>

<t>Ingress nodes communicate an interest in sets of global (S,G)s by providing a monitor object with a matching filter under a watcher with id equal to their watcher-key.</t>

<t>Watcher-keys expire if the refresh-watcher-id rpc is not invoked within the refresh-period given in the response to the get-new-watcher-id rpc.</t>

<t>TBD: better explanation about how the service times out egress nodes that don’t refresh their egress key on schedule, and how egress nodes that reconnect can attempt to refresh the prior key they were using, but must request a new one on error.
Probably define a state per egress key (e.g. active vs. recently expired vs. non-existant) for the MNAT service to maintain.
Explain how the MNAT service should use population count from the egress joins to make prioritization decisions for the assignment of flows when there is limited flow space.
Probably reference CBACC in that explanation (I-D.draft-ietf-mboned-cbacc).</t>

</section>
<section anchor="egress-group-management" title="Egress Group Management">

<t>The egress-global-joined container in the YANG model provides a mechanism for egress nodes to directly advertise their group membership to the MNAT service for externally addressed (S,G)s.</t>

<t>Egress nodes advertise their group membership to external (S,G)s to the MNAT service and also advertise group membership to their next-hop router using IGMP or MLD for the locally mapped addressing withing the network.
Joins and leaves for the locally mapped network addresses occur in response to downstream joins for an external (S,G) that has or gains a mapping according to the MNAT service, when the join or leave propagates to the egress node.</t>

<t>Payloads of the locally mapped traffic should be treated as though they were carried in packets addressed as the external (S,G), including any authentication checks that should be performed for the traffic.
Egress nodes that forward traffic (non-virtual egress nodes) will perform an address translation from the locally mapped addressing to the original (S,G) (according to the address mapping the MNAT service provides) before forwarding packets matching a locally mapped address.
It is the responsibility of the MNAT service and the network that operates it to ensure that multiple different traffic streams are not merged to the same locally mapped addresses in a way that collides.</t>

<t>TBD: describe the effects of transient and persistent collisions?</t>

</section>
<section anchor="ingress-considerations" title="Ingress Considerations">

<t>Like egress nodes, ingress nodes monitor the assignments provided by the MNAT service and perform network address translation and group membership propagation.
Ingress nodes perform the translation from an external (S,G) to the internally mapped addressing for the local network transport.</t>

<t>In general, ingress nodes are translating traffic before the in-network multicast fanout to multiple egress nodes.
So an ingress node is generally assumed to be feeding one or more egress nodes.
Because one ingress node can feed many egress nodes, ingress nodes should be given priority ahead of egress nodes for notifications about changes to the address mapping from the MNAT service.</t>

</section>
<section anchor="mnat-service-considerations" title="MNAT Service Considerations">

<t>The details of the address assignment strategies used by the internal logic of the MNAT service are out of scope for this document.
Different instances of MNAT services are expected to use a wide range of considerations specific to the networks in which the instances operate.</t>

<t>However, outside of address assignment there are some operational points an MNAT service instance should take into consideration:</t>

<t><list style="numbers">
  <t>Assignment Transition Grace Period  <vspace blankLines='1'/>
It’s recommended to provide a grace period between reassigning a local address mapping to a new external (S,G) after unassigning its mapping to an old (S,G).
The grace period should account for the expected time for the connected ingress and egress nodes to process the unassigning of the external (S,G) and for egress nodes to perform leave operations for the old locally mapped address, and for the leave operations to propagate through the network.
For most networks, 250 seconds is a good default, as this allows a usually sufficient time for IGMP and MLD membership to time out and for any resulting prune operations to propagate through the network.
However, different networks may tune the grace period differently for a variety of operational considerations.</t>
  <t>Scaling  <vspace blankLines='1'/>
The MNAT service should be appropriately provisioned to support the expected number of ingress and egress nodes within the network.
In an eyeball network, restrictions on the number of egress nodes per shared receiver IP address may be appropriate in order to prevent a rogue client application from forming an excessive number of egress connections.
Alternately, for bump-in-the-wire deployments of egress nodes in CPE devices it may be appropriate to authenticate the egress connections with a client certificate for each home to avoid denial of service attacks based on overloading the MNAT service with egress connections.  <vspace blankLines='1'/>
Additionally, it’s RECOMMENDED to provide per-egress limits on the number of external simultaneous (S,G)s permitted per egress at a level appropriate to the scaling limitations for the network, to prevent denial of service attacks based on overloading the group assignments from a single malicious egress node.</t>
</list></t>

</section>
<section anchor="example-messaging-walkthrough" title="Example Messaging Walkthrough">

<t>TBD: show what an expected example message sequence or 2 would look like.</t>

</section>
</section>
</section>
<section anchor="model" title="YANG Model">

<section anchor="yang-tree" title="Yang Tree">

<t>The tree diagram below uses the notation defined in <xref target="RFC8340"/>.</t>

<figure title="MNAT Tree Diagram"><artwork><![CDATA[
module: ietf-mnat
  +--rw egress-global-joined
  |  +--rw watcher* [id]
  |     +--rw id           watcher-key
  |     +--rw joined-sg* [id]
  |        +--rw id                 string
  |        +--rw (channel-type)?
  |           +--:(ssm-channel)
  |           |  +--rw source       inet:ip-address
  |           |  +--rw group
  |           |          rt-types:ip-multicast-group-address
  |           +--:(asm-channel)
  |              +--rw asm-group
  |                      rt-types:ip-multicast-group-address
  +--rw ingress-watching
  |  +--rw watcher* [id]
  |     +--rw id         watcher-key
  |     +--rw monitor* [id]
  |        +--rw id                            string
  |        +--rw (monitor-type)?
  |           +--:(monitor-global-sources)
  |              +--rw global-source-prefix    inet:ip-prefix
  +--ro assigned-channels
     +--ro watcher* [id]
        +--ro id           watcher-key
        +--ro mapped-sg* [id]
           +--ro id                     assignment-id
           +--ro state                  assignment-state
           +--ro global-subscription
           |  +--ro (channel-type)?
           |     +--:(ssm-channel)
           |     |  +--ro source       inet:ip-address
           |     |  +--ro group
           |     |          rt-types:ip-multicast-group-address
           |     +--:(asm-channel)
           |        +--ro asm-group
           |                rt-types:ip-multicast-group-address
           +--ro local-mapping
              +--ro (mapping-type)?
                 +--:(local-multicast-mapping)
                    +--ro (channel-type)?
                       +--:(ssm-channel)
                       |  +--ro source       inet:ip-address
                       |  +--ro group
                       |          rt-types:ip-multicast-group-address
                       +--:(asm-channel)
                          +--ro asm-group
                                  rt-types:ip-multicast-group-address

  rpcs:
    +---x get-new-watcher-id
    |  +--ro output
    |     +--ro watcher-id        watcher-key
    |     +--ro refresh-period?   uint16
    +---x refresh-watcher-id
       +---w input
       |  +---w watcher-id    watcher-key
       +--ro output
          +--ro refresh-period?   uint16

]]></artwork></figure>

</section>
<section anchor="yang-module" title="Yang Module">

<figure><artwork><![CDATA[
<CODE BEGINS> file ietf-mnat@2021-02-01.yang
module ietf-mnat {
  yang-version 1.1;

  namespace "urn:ietf:params:xml:ns:yang:ietf-mnat";
  prefix mnat;

  import ietf-inet-types {
    prefix inet;
    reference
      "RFC 6991: Common YANG Data Types";
  }

  import ietf-routing-types {
    prefix "rt-types";
    reference "RFC 8294";
  }

  organization
    "IETF MBONED (Multicast Backbone Deployment) Working Group";

  contact
    "WG Web:   <https://datatracker.ietf.org/wg/mboned/>
     WG List:  <mailto:mboned@ietf.org>

     Author:   Jake Holland
               <mailto:jakeholland.net@gmail.com>";

  description
    "Multicast Network Address Translation Model.

     Copyright (c) 2012 - 2020 IETF Trust and the persons
     identified as authors of the code.  All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject
     to the license terms contained in, the Simplified BSD
     License set forth in Section 4.c of the IETF Trust's
     Legal Provisions Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC XXXX; see
     the RFC itself for full legal notices.";

  revision "2020-10-22" {
    description
      "Initial version.";
  }

  grouping multicast-channel {
    choice channel-type {
      description
        "ASM or SSM multicast channels can be represented.";
      case ssm-channel {
        leaf source {
          type inet:ip-address;
          mandatory true;
          description
            "Source address of a multicast channel";
        }
        leaf group {
          type rt-types:ip-multicast-group-address;
          mandatory true;
          description "The global (S,G)'s group address";
        }
      }
      case asm-channel {
        leaf asm-group {
          type rt-types:ip-multicast-group-address;
          mandatory true;
          description "The global (S,G)'s group address";
        }
      }
    }
  }

  grouping monitor-definition {
    choice monitor-type {
      description
        "Definition of monitor characteristics.";
      case monitor-global-sources {
        leaf global-source-prefix {
          type inet:ip-prefix;
          mandatory true;
          description
            "Prefix to match for source IPs.";
        }
      }
    }
  }

  typedef watcher-key {
    type string;
    description
      "A key for egress identification.";
  }

  typedef assignment-id {
    type uint32;
    description
      "A type for assignment identifiers.";
  }

  identity assignment-state {
    description
      "Base identity to represent assignment states";
  }

  typedef assignment-state {
    type identityref {
      base assignment-state;
    }
    description "Status of an assigned (S,G).";
  }

  identity unassigned {
    base assignment-state;
    description
      "Represents an unassigned global (S,G) that cannot be
       received in the local network.";
  }

  identity assigned-local-multicast {
    base assignment-state;
    description
      "Represents an assigned global (S,G) that can be
       received in the local network by joining the associated
       local-mapping.";
  }

  container egress-global-joined {
    description
      "Declarations of subscriptions to global (S,G)s per
       egress.";

    list watcher {
      key "id";
      description
        "Mappings of traffic that correspond to the registered
         interest list for a given watch id (from the
         get-new-watcher-id rpc)";
      leaf id {
        type watcher-key;
        description
          "Identifier from get-new-watcher-id.  Tracks assignments
           of interest to the specific watcher.";
      }
      list joined-sg {
        key "id";
        leaf id {
          type string;
          description
            "id of the joined (S,G)";
        }
        description
          "(S,G)s in the global address space that an egress is
           joined to.  These should get corresponding entries in
           the assigned-channels lists.";
        uses multicast-channel;
      }
    }
  }
  container ingress-watching {
    description
      "Matches on (S,G)s that get ingested from this ingress.";

    list watcher {
      key "id";
      description
        "Mappings of traffic that correspond to the registered
         interest list for a given watch id (from the
         get-new-watcher-id rpc)";
      leaf id {
        type watcher-key;
        description
          "Identifier from get-new-watcher-id.  Tracks assignments
           of interest to the specific watcher.";
      }
      list monitor {
        key "id";
        leaf id {
          type string;
          description
            "id of the monitor definition";
        }
        uses monitor-definition;
      }
    }
  }
  container assigned-channels {
    config false;
    description
      "MNAT mappings of global (S,G)s into a local transport.";

    list watcher {
      key "id";
      description
        "Mappings of traffic that correspond to the registered
         interest list for a given watch id (from the
         get-new-watcher-id rpc)";
      leaf id {
        type watcher-key;
        description
          "Identifier from get-new-watcher-id.  Tracks assignments
           of interest to the specific watcher.";
      }
      list mapped-sg {
        key "id";
        description
          "The local network's assignment of global channels to
           local transport characteristics.";

        leaf id {
          type assignment-id;
          mandatory true;
          description
            "Identifier for this assignment.";
        }
        leaf state {
          type assignment-state;
          mandatory true;
          description
            "Status of the global (S,G)s that are assigned in the
             local network.";
        }
        container global-subscription {
          description
            "The global channel that's mapped.";
          uses multicast-channel;
        }
        container local-mapping {
          choice mapping-type {
            description
              "The description of how the global channel is
               transported within the local network";

            case local-multicast-mapping {
              description
                "Defines the use of a local multicast (S,G) or
                 (*,G).";
              uses multicast-channel;
            }
          }
        }
      }
    }
  }

  rpc get-new-watcher-id {
    description
      "Obtain a secret key unique to an individual mnat-egress
       instance, assigned by the server and used for subscription
       management.";
    output {
      leaf watcher-id {
        type watcher-key;
        mandatory true;
        description
          "Identifier for assignment monitoring.";
      }
      leaf refresh-period {
        type uint16;
        default 10;
        description
          "Number of seconds to wait between refresh messages.";
      }
    }
  }
  rpc refresh-watcher-id {
    description
      "A secret key unique to an individual mnat-egress instance,
       assigned by the server and used for subscription
       management.";
    input {
      leaf watcher-id {
        type watcher-key;
        mandatory true;
        description
          "Egress identifier for assignment monitoring.";
      }
    }
    output {
      leaf refresh-period {
        type uint16;
        default 10;
        description
          "Number of seconds to wait between refresh messages.";
      }
    }
  }
}

<CODE ENDS>
]]></artwork></figure>

</section>
</section>
<section anchor="iana-considerations" title="IANA Considerations">

<section anchor="the-yang-module-names-registry" title="The YANG Module Names Registry">

<t>This document adds one YANG module to the “YANG Module Names” registry maintained at &lt;https://www.iana.org/assignments/yang-parameters&gt;.
The following registrations are made, per the format in Section 14 of <xref target="RFC6020"/>:</t>

<figure><artwork><![CDATA[
      name:      ietf-mnat
      namespace: urn:ietf:params:xml:ns:yang:ietf-mnat
      prefix:    mnat
      reference: I-D.draft-jholland-mboned-mnat
]]></artwork></figure>

</section>
<section anchor="the-xml-registry" title="The XML Registry">

<t>This document adds the following registration to the “ns” subregistry of the “IETF XML Registry” defined in <xref target="RFC3688"/>, referencing this document.</t>

<figure><artwork><![CDATA[
       URI: urn:ietf:params:xml:ns:yang:ietf-mnat
       Registrant Contact: The IESG.
       XML: N/A, the requested URI is an XML namespace.
]]></artwork></figure>

</section>
<section anchor="the-service-name-and-transport-protocol-port-number-registry" title="The Service Name and Transport Protocol Port Number Registry">

<t>This document adds one service name to the “Service Name and Transport Protocol Port Number Registry” maintained at &lt;https://www.iana.org/assignments/service-names-port-numbers&gt;.
The following registrations are made, per the format in Section 8.1.1 of <xref target="RFC6335"/>:</t>

<figure><artwork><![CDATA[
     Service Name:            mnat
     Transport Protocol(s):   TCP, UDP
     Assignee:                IESG <iesg@ietf.org>
     Contact:                 IETF Chair <chair@ietf.org>
     Description:             The MNAT service (RESTCONF that
                              includes ietf-mnat YANG model)
     Reference:               I-D.draft-jholland-mboned-mnat
     Port Number:             N/A
     Service Code:            N/A
     Known Unauthorized Uses: N/A
     Assignment Notes:        N/A
]]></artwork></figure>

</section>
</section>
<section anchor="security" title="Security Considerations">

<t>TBD.  (What, me worry?)</t>

<t>Notable points to cover:</t>

<t><list style="symbols">
  <t>communcation with the MNAT service should be secured.  RESTCONF does this, alternate methods should also do it.</t>
  <t>separate authentication of the contents of the multicast traffic is recommended (e.g. with AMBI or TESLA).  Probably it’s not recommended for a network with MNAT to pass external traffic that does not provide authentication, and if the internal traffic is not authenticated, to segregate the internal from the external traffic in the MNAT assignment pools.</t>
  <t>mistaken mappings can result in receipt of payloads for the wrong channel.  This can happen transiently even during normal operation.  Recommend some steps to mitigate and avoid (e.g. the grace period and the authentication–TBD: explain how they help)</t>
  <t>Clients can (deliberately or accidentally) overload the service.  Limits should be set to avoid disrupting traffic to the rest of the network.</t>
</list></t>

</section>
<section anchor="acknowledgements" title="Acknowledgements">

<t>Thanks to Lenny Giuliano and Sandy Zhang for their very helpful comments on this document.</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>





<reference  anchor="RFC1112" target='https://www.rfc-editor.org/info/rfc1112'>
<front>
<title>Host extensions for IP multicasting</title>
<author initials='S.E.' surname='Deering' fullname='S.E. Deering'><organization /></author>
<date year='1989' month='August' />
<abstract><t>This memo specifies the extensions required of a host implementation of the Internet Protocol (IP) to support multicasting.  Recommended procedure for IP multicasting in the Internet.  This RFC obsoletes RFCs 998 and 1054.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='STD' value='5'/>
<seriesInfo name='RFC' value='1112'/>
<seriesInfo name='DOI' value='10.17487/RFC1112'/>
</reference>



<reference  anchor="RFC2119" target='https://www.rfc-editor.org/info/rfc2119'>
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
<author initials='S.' surname='Bradner' fullname='S. Bradner'><organization /></author>
<date year='1997' month='March' />
<abstract><t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t></abstract>
</front>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='2119'/>
<seriesInfo name='DOI' value='10.17487/RFC2119'/>
</reference>



<reference  anchor="RFC3810" target='https://www.rfc-editor.org/info/rfc3810'>
<front>
<title>Multicast Listener Discovery Version 2 (MLDv2) for IPv6</title>
<author initials='R.' surname='Vida' fullname='R. Vida' role='editor'><organization /></author>
<author initials='L.' surname='Costa' fullname='L. Costa' role='editor'><organization /></author>
<date year='2004' month='June' />
<abstract><t>This document updates RFC 2710, and it specifies Version 2 of the ulticast Listener Discovery Protocol (MLDv2).  MLD is used by an IPv6 router to discover the presence of multicast listeners on directly attached links, and to discover which multicast addresses are of interest to those neighboring nodes.  MLDv2 is designed to be interoperable with MLDv1.  MLDv2 adds the ability for a node to report interest in listening to packets with a particular multicast address only from specific source addresses or from all sources except for specific source addresses.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='3810'/>
<seriesInfo name='DOI' value='10.17487/RFC3810'/>
</reference>



<reference  anchor="RFC3376" target='https://www.rfc-editor.org/info/rfc3376'>
<front>
<title>Internet Group Management Protocol, Version 3</title>
<author initials='B.' surname='Cain' fullname='B. Cain'><organization /></author>
<author initials='S.' surname='Deering' fullname='S. Deering'><organization /></author>
<author initials='I.' surname='Kouvelas' fullname='I. Kouvelas'><organization /></author>
<author initials='B.' surname='Fenner' fullname='B. Fenner'><organization /></author>
<author initials='A.' surname='Thyagarajan' fullname='A. Thyagarajan'><organization /></author>
<date year='2002' month='October' />
</front>
<seriesInfo name='RFC' value='3376'/>
<seriesInfo name='DOI' value='10.17487/RFC3376'/>
</reference>



<reference  anchor="RFC4604" target='https://www.rfc-editor.org/info/rfc4604'>
<front>
<title>Using Internet Group Management Protocol Version 3 (IGMPv3) and Multicast Listener Discovery Protocol Version 2 (MLDv2) for Source-Specific Multicast</title>
<author initials='H.' surname='Holbrook' fullname='H. Holbrook'><organization /></author>
<author initials='B.' surname='Cain' fullname='B. Cain'><organization /></author>
<author initials='B.' surname='Haberman' fullname='B. Haberman'><organization /></author>
<date year='2006' month='August' />
<abstract><t>The Internet Group Management Protocol Version 3 (IGMPv3) and the Multicast Listener Discovery Protocol Version 2 (MLDv2) are protocols that allow a host to inform its neighboring routers of its desire to receive IPv4 and IPv6 multicast transmissions, respectively. Source-specific multicast (SSM) is a form of multicast in which a receiver is required to specify both the network-layer address of the source and the multicast destination address in order to receive the multicast transmission.  This document defines the notion of an &quot;SSM-aware&quot; router and host, and clarifies and (in some cases) modifies the behavior of IGMPv3 and MLDv2 on SSM-aware routers and hosts to accommodate source-specific multicast.  This document updates the IGMPv3 and MLDv2 specifications.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='4604'/>
<seriesInfo name='DOI' value='10.17487/RFC4604'/>
</reference>



<reference  anchor="RFC4607" target='https://www.rfc-editor.org/info/rfc4607'>
<front>
<title>Source-Specific Multicast for IP</title>
<author initials='H.' surname='Holbrook' fullname='H. Holbrook'><organization /></author>
<author initials='B.' surname='Cain' fullname='B. Cain'><organization /></author>
<date year='2006' month='August' />
<abstract><t>IP version 4 (IPv4) addresses in the 232/8 (232.0.0.0 to 232.255.255.255) range are designated as source-specific multicast (SSM) destination addresses and are reserved for use by source-specific applications and protocols.  For IP version 6 (IPv6), the address prefix FF3x::/32 is reserved for source-specific multicast use.  This document defines an extension to the Internet network service that applies to datagrams sent to SSM addresses and defines the host and router requirements to support this extension.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='4607'/>
<seriesInfo name='DOI' value='10.17487/RFC4607'/>
</reference>



<reference  anchor="RFC6763" target='https://www.rfc-editor.org/info/rfc6763'>
<front>
<title>DNS-Based Service Discovery</title>
<author initials='S.' surname='Cheshire' fullname='S. Cheshire'><organization /></author>
<author initials='M.' surname='Krochmal' fullname='M. Krochmal'><organization /></author>
<date year='2013' month='February' />
<abstract><t>This document specifies how DNS resource records are named and structured to facilitate service discovery.  Given a type of service that a client is looking for, and a domain in which the client is looking for that service, this mechanism allows clients to discover a list of named instances of that desired service, using standard DNS queries. This mechanism is referred to as DNS-based Service Discovery, or DNS-SD.</t></abstract>
</front>
<seriesInfo name='RFC' value='6763'/>
<seriesInfo name='DOI' value='10.17487/RFC6763'/>
</reference>



<reference  anchor="RFC7950" target='https://www.rfc-editor.org/info/rfc7950'>
<front>
<title>The YANG 1.1 Data Modeling Language</title>
<author initials='M.' surname='Bjorklund' fullname='M. Bjorklund' role='editor'><organization /></author>
<date year='2016' month='August' />
<abstract><t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols.  This document describes the syntax and semantics of version 1.1 of the YANG language.  YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification.  There are a small number of backward incompatibilities from YANG version 1.  This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t></abstract>
</front>
<seriesInfo name='RFC' value='7950'/>
<seriesInfo name='DOI' value='10.17487/RFC7950'/>
</reference>



<reference  anchor="RFC8040" target='https://www.rfc-editor.org/info/rfc8040'>
<front>
<title>RESTCONF Protocol</title>
<author initials='A.' surname='Bierman' fullname='A. Bierman'><organization /></author>
<author initials='M.' surname='Bjorklund' fullname='M. Bjorklund'><organization /></author>
<author initials='K.' surname='Watsen' fullname='K. Watsen'><organization /></author>
<date year='2017' month='January' />
<abstract><t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t></abstract>
</front>
<seriesInfo name='RFC' value='8040'/>
<seriesInfo name='DOI' value='10.17487/RFC8040'/>
</reference>



<reference  anchor="RFC8174" target='https://www.rfc-editor.org/info/rfc8174'>
<front>
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
<author initials='B.' surname='Leiba' fullname='B. Leiba'><organization /></author>
<date year='2017' month='May' />
<abstract><t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t></abstract>
</front>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='8174'/>
<seriesInfo name='DOI' value='10.17487/RFC8174'/>
</reference>



<reference  anchor="RFC8340" target='https://www.rfc-editor.org/info/rfc8340'>
<front>
<title>YANG Tree Diagrams</title>
<author initials='M.' surname='Bjorklund' fullname='M. Bjorklund'><organization /></author>
<author initials='L.' surname='Berger' fullname='L. Berger' role='editor'><organization /></author>
<date year='2018' month='March' />
<abstract><t>This document captures the current syntax used in YANG module tree diagrams.  The purpose of this document is to provide a single location for this definition.  This syntax may be updated from time to time based on the evolution of the YANG language.</t></abstract>
</front>
<seriesInfo name='BCP' value='215'/>
<seriesInfo name='RFC' value='8340'/>
<seriesInfo name='DOI' value='10.17487/RFC8340'/>
</reference>



<reference  anchor="RFC8641" target='https://www.rfc-editor.org/info/rfc8641'>
<front>
<title>Subscription to YANG Notifications for Datastore Updates</title>
<author initials='A.' surname='Clemm' fullname='A. Clemm'><organization /></author>
<author initials='E.' surname='Voit' fullname='E. Voit'><organization /></author>
<date year='2019' month='September' />
<abstract><t>This document describes a mechanism that allows subscriber applications to request a continuous and customized stream of updates from a YANG datastore.  Providing such visibility into updates enables new capabilities based on the remote mirroring and monitoring of configuration and operational state.</t></abstract>
</front>
<seriesInfo name='RFC' value='8641'/>
<seriesInfo name='DOI' value='10.17487/RFC8641'/>
</reference>




    </references>

    <references title='Informative References'>





<reference  anchor="RFC2663" target='https://www.rfc-editor.org/info/rfc2663'>
<front>
<title>IP Network Address Translator (NAT) Terminology and Considerations</title>
<author initials='P.' surname='Srisuresh' fullname='P. Srisuresh'><organization /></author>
<author initials='M.' surname='Holdrege' fullname='M. Holdrege'><organization /></author>
<date year='1999' month='August' />
<abstract><t>This document attempts to describe the operation of NAT devices and the associated considerations in general, and to define the terminology used to identify various flavors of NAT.  This memo provides information for the Internet community.</t></abstract>
</front>
<seriesInfo name='RFC' value='2663'/>
<seriesInfo name='DOI' value='10.17487/RFC2663'/>
</reference>



<reference  anchor="RFC3397" target='https://www.rfc-editor.org/info/rfc3397'>
<front>
<title>Dynamic Host Configuration Protocol (DHCP) Domain Search Option</title>
<author initials='B.' surname='Aboba' fullname='B. Aboba'><organization /></author>
<author initials='S.' surname='Cheshire' fullname='S. Cheshire'><organization /></author>
<date year='2002' month='November' />
</front>
<seriesInfo name='RFC' value='3397'/>
<seriesInfo name='DOI' value='10.17487/RFC3397'/>
</reference>



<reference  anchor="RFC3688" target='https://www.rfc-editor.org/info/rfc3688'>
<front>
<title>The IETF XML Registry</title>
<author initials='M.' surname='Mealling' fullname='M. Mealling'><organization /></author>
<date year='2004' month='January' />
<abstract><t>This document describes an IANA maintained registry for IETF standards which use Extensible Markup Language (XML) related items such as Namespaces, Document Type Declarations (DTDs), Schemas, and Resource Description Framework (RDF) Schemas.</t></abstract>
</front>
<seriesInfo name='BCP' value='81'/>
<seriesInfo name='RFC' value='3688'/>
<seriesInfo name='DOI' value='10.17487/RFC3688'/>
</reference>



<reference  anchor="RFC6020" target='https://www.rfc-editor.org/info/rfc6020'>
<front>
<title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
<author initials='M.' surname='Bjorklund' fullname='M. Bjorklund' role='editor'><organization /></author>
<date year='2010' month='October' />
<abstract><t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='6020'/>
<seriesInfo name='DOI' value='10.17487/RFC6020'/>
</reference>



<reference  anchor="RFC6202" target='https://www.rfc-editor.org/info/rfc6202'>
<front>
<title>Known Issues and Best Practices for the Use of Long Polling and Streaming in Bidirectional HTTP</title>
<author initials='S.' surname='Loreto' fullname='S. Loreto'><organization /></author>
<author initials='P.' surname='Saint-Andre' fullname='P. Saint-Andre'><organization /></author>
<author initials='S.' surname='Salsano' fullname='S. Salsano'><organization /></author>
<author initials='G.' surname='Wilkins' fullname='G. Wilkins'><organization /></author>
<date year='2011' month='April' />
<abstract><t>On today's Internet, the Hypertext Transfer Protocol (HTTP) is often used (some would say abused) to enable asynchronous, &quot;server- initiated&quot; communication from a server to a client as well as communication from a client to a server.  This document describes known issues and best practices related to such &quot;bidirectional HTTP&quot; applications, focusing on the two most common mechanisms: HTTP long polling and HTTP streaming.  This document is not an Internet  Standards Track specification; it is published for informational  purposes.</t></abstract>
</front>
<seriesInfo name='RFC' value='6202'/>
<seriesInfo name='DOI' value='10.17487/RFC6202'/>
</reference>



<reference  anchor="RFC6335" target='https://www.rfc-editor.org/info/rfc6335'>
<front>
<title>Internet Assigned Numbers Authority (IANA) Procedures for the Management of the Service Name and Transport Protocol Port Number Registry</title>
<author initials='M.' surname='Cotton' fullname='M. Cotton'><organization /></author>
<author initials='L.' surname='Eggert' fullname='L. Eggert'><organization /></author>
<author initials='J.' surname='Touch' fullname='J. Touch'><organization /></author>
<author initials='M.' surname='Westerlund' fullname='M. Westerlund'><organization /></author>
<author initials='S.' surname='Cheshire' fullname='S. Cheshire'><organization /></author>
<date year='2011' month='August' />
<abstract><t>This document defines the procedures that the Internet Assigned Numbers Authority (IANA) uses when handling assignment and other requests related to the Service Name and Transport Protocol Port Number registry.  It also discusses the rationale and principles behind these procedures and how they facilitate the long-term sustainability of the registry.</t><t>This document updates IANA's procedures by obsoleting the previous UDP and TCP port assignment procedures defined in Sections 8 and 9.1 of the IANA Allocation Guidelines, and it updates the IANA service name and port assignment procedures for UDP-Lite, the Datagram Congestion Control Protocol (DCCP), and the Stream Control Transmission Protocol (SCTP).  It also updates the DNS SRV specification to clarify what a service name is and how it is registered.  This memo documents an Internet Best Current Practice.</t></abstract>
</front>
<seriesInfo name='BCP' value='165'/>
<seriesInfo name='RFC' value='6335'/>
<seriesInfo name='DOI' value='10.17487/RFC6335'/>
</reference>



<reference  anchor="RFC7761" target='https://www.rfc-editor.org/info/rfc7761'>
<front>
<title>Protocol Independent Multicast - Sparse Mode (PIM-SM): Protocol Specification (Revised)</title>
<author initials='B.' surname='Fenner' fullname='B. Fenner'><organization /></author>
<author initials='M.' surname='Handley' fullname='M. Handley'><organization /></author>
<author initials='H.' surname='Holbrook' fullname='H. Holbrook'><organization /></author>
<author initials='I.' surname='Kouvelas' fullname='I. Kouvelas'><organization /></author>
<author initials='R.' surname='Parekh' fullname='R. Parekh'><organization /></author>
<author initials='Z.' surname='Zhang' fullname='Z. Zhang'><organization /></author>
<author initials='L.' surname='Zheng' fullname='L. Zheng'><organization /></author>
<date year='2016' month='March' />
<abstract><t>This document specifies Protocol Independent Multicast - Sparse Mode (PIM-SM).  PIM-SM is a multicast routing protocol that can use the underlying unicast routing information base or a separate multicast-capable routing information base.  It builds unidirectional shared trees rooted at a Rendezvous Point (RP) per group, and it optionally creates shortest-path trees per source.</t><t>This document obsoletes RFC 4601 by replacing it, addresses the errata filed against it, removes the optional (*,*,RP), PIM Multicast Border Router features and authentication using IPsec that lack sufficient deployment experience (see Appendix A), and moves the PIM specification to Internet Standard.</t></abstract>
</front>
<seriesInfo name='STD' value='83'/>
<seriesInfo name='RFC' value='7761'/>
<seriesInfo name='DOI' value='10.17487/RFC7761'/>
</reference>



<reference  anchor="RFC8815" target='https://www.rfc-editor.org/info/rfc8815'>
<front>
<title>Deprecating Any-Source Multicast (ASM) for Interdomain Multicast</title>
<author initials='M.' surname='Abrahamsson' fullname='M. Abrahamsson'><organization /></author>
<author initials='T.' surname='Chown' fullname='T. Chown'><organization /></author>
<author initials='L.' surname='Giuliano' fullname='L. Giuliano'><organization /></author>
<author initials='T.' surname='Eckert' fullname='T. Eckert'><organization /></author>
<date year='2020' month='August' />
<abstract><t>This document recommends deprecation of the use of Any-Source Multicast (ASM) for interdomain multicast. It recommends the use of Source-Specific Multicast (SSM) for interdomain multicast applications and recommends that hosts and routers in these deployments fully support SSM.  The recommendations in this document do not preclude the continued use of ASM within a single organization or domain and are especially easy to adopt in existing deployments of intradomain ASM using PIM Sparse Mode (PIM-SM).</t></abstract>
</front>
<seriesInfo name='BCP' value='229'/>
<seriesInfo name='RFC' value='8815'/>
<seriesInfo name='DOI' value='10.17487/RFC8815'/>
</reference>


<reference anchor="IEEE-802.1Q" target="https://standards.ieee.org/findstds/standard/802.1Q-2011.html">
  <front>
    <title>Local and Metropolitan Area Networks -- Media Access Control (MAC) Bridges and Virtual Bridged Local Area Networks</title>
    <author >
      <organization>IEEE</organization>
    </author>
    <date year="n.d."/>
  </front>
  <seriesInfo name="IEEE" value="Std 802.1Q"/>
</reference>


    </references>



  </back>

<!-- ##markdown-source:
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
XCReAWQv/beXEofGwf8Hj6WmLEeAAAA=

-->

</rfc>

