<?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-jholland-mboned-mnat-01" 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="2020" month="December" day="23"/>

    <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 require 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.  This breaks the traffic segregation 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 are welcome 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>https://github.com/GrumpyOldTroll/mnat</t>

<t>Pull requests, comments, testing and deployment reports, etc. are very welcome.  Contributors before 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"/>.
In particular, they maintain an up-to-date table of the mappings between the external (S,G)s and the locally assigned addresses for transport within the network in order 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), treating the payloads of the packets received 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.</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.</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 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>

</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.</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, to avoid 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 avoid denial of service attacks based on overloading the group assignments.</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@2020-12-23.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.</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.</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 for 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:
H4sIAFp5418AA+09a3PcxpHf91dMUR9M5ogVH7Ikrx0nFEnLTESKEakoqeTq
CgsMl7CwwAYDkGJk3m+/fs0LwFKSk8rlQ7ZKpSUwj56efnfPbJIkk7ZoSz1T
p13ZFllqWnWm29u6ea8O8rzRxqjLJq1MmbZFXU3S+bzRN9D67OByktdZlS6h
b96kV23y03VdlmmVJ8t5XWn4r0rbZGd3kqcttNnb2dtJdveSvf1JBg8WdXM3
U6bNJ5Ni1cxU23Sm3dvZ+WZnb5I2Op2p1yszQTgWTd2tYEYadPJe38HDfKZO
qlY3lW6TI5x8MjEtTP0/aQmtZupOm8mqmKm/tHW2rUzdtI2+MvDtbolf/nsy
Sbv2um5mE5VMFHyKyszU76bqR14CPeO1/S59r6PHdbOYqYP36TIt1KXOrqu6
rBeFhtFPqmxKTQxMp9uZ2v16R71o6jS/Te/oRVa0sOrDdDlvinyht9XpgdrZ
233yhN/WXdUiWt5WRatzddECooyqr9TBUjewOdRKw8TlTP0EcAnCp4CG3y7w
8TSrl5NJVTdL2K4bDctTb3443N3d3ZOve7u738jX/ee7O/br/rOn8vXJ050n
/usz+fr02dN9+frsm69tt+c7T9zX3We22/N9//Tpk90ZbHB11YNo76kbb3//
GzvL/tPnz+2EQC32K1CO/bq//7UF49nTXTvL8116enJ8fJw839mb7v5hRpgS
yt54VWdpqQBR6lS3Tb2qywKIRR0AmVliNypJ4G1epOogy5DqD2vYi7pUm6cH
h1uwi7hfhgb5Y9G0HQzIz3LFw0ejbdD8jsbokzDlIJRMJLCl2iBubIsNfLcx
g33PFa+Dl5E2C6Sm67Zdmdnjx0TpaZObaaG1nsKoj6+KKgdeMu7dY+6f7O3s
7k6v22U5mSSwwnQOpJlmwC6X14VRwMDdUletyjWMgMtTSw0w5wo2DP6oRBK0
tQLqqlr495B0UKk8W6arVVEtDA3TXmvgbmi0AjZEYl6U9TwtyzvbHFC4dMIH
Wl5dFZm6LdprmC2A4TptVZZWX8EYMGRzWxiN49/CammOkWFlsOnkAIa5/TwR
BxsOsm0Lt+emyLRCNBF2ckQD8NeyqwqUYDTpYMXQBv6nZ0grmr+uasCesYvC
jrKsbWqV1ZUpct0QAIy1eiV/IsawA0LlgAIJCVCZrCnmOp/y3i6LPC/1ZPII
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

-->

</rfc>

