<?xml version="1.0" encoding="us-ascii"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd"[
<!ENTITY RFC6256 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6256.xml">
<!ENTITY RFC4838 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4838.xml">
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC5050 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5050.xml">
<!ENTITY RFC6257 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6257.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc strict="yes" ?>
<?rfc toc="yes"?>
<?rfc tocdep"4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="no" ?>
<?rfc subcompact="no" ?>

<rfc category="exp" ipr="trust200902" docName="draft-birrane-dtn-adm-ion-ipnadmin-00" obsoletes="" updates="" submissionType="IETF" xml:lang="en">

   <!-- ***** FRONT MATTER ***** -->
   <front> 
      <title abbrev="ION IPN ADM">ION  Application Data Model</title>
      <author fullname="Edward J. Birrane" initials="E.B." surname="Birrane">
         <organization> Johns Hopkins Applied Physics Laboratory </organization>
         <address>
            <email>Edward.Birrane@jhuapl.edu</email>
         </address>
      </author>
      <author fullname="Evana DiPietro" initials="E.D." surname="DiPietro">
         <organization> Johns Hopkins Applied Physics Laboratory </organization>
         <address>
            <email>Evana.DiPietro@jhuapl.edu</email>
         </address>
      </author>
      <author fullname="David Linko" initials="D.L." surname="Linko">
         <organization> Johns Hopkins Applied Physics Laboratory </organization>
         <address>
            <email>David.Linko@jhuapl.edu</email>
         </address>
      </author>
      <date year="2018" />
      
       <!-- Meta-data Declarations -->
      <area>General</area>
      <workgroup>Delay-Tolerant Networking</workgroup>
      <keyword>DTN</keyword>
      <keyword>Network Management</keyword>

      <abstract>
         <t>
            This document describes the Application Data Model (ADM) for the
            configuration of the routing of bundles to ipn endpoint ID scheme conformant endpoints from a local ION node.
            provided by <xref target="I-D.birrane-dtn-adm"/>.
         </t>
      </abstract>
   </front>
  
   <middle>
      <section title="Introduction" toc="default">
         <t>
            An Application Data Model (ADM) provides a guaranteed 
            interface for the management of an application or 
            protocol in accordance with the Asynchronous Management 
            Architecture (AMA) defined in <xref target="I-D.birrane-dtn-ama"/>. 
            The ADM described in this document complies with the 
            ADM Template provided in <xref target="I-D.birrane-dtn-adm"/> 
            as encoded using the JSON syntax.
         </t>
         <t>
            The ION IPN (Interplanetary Internet) Scheme Administration ADM contains all of the functionality that is required to configure the routing of bundles from a local node to an endpoint that conforms to the IPN scheme.

         </t>
             
         <section title="Technical Notes" toc="default">
            <t>
               <list style="symbols">
                  <t>
                     This document describes Version 0.0 of the ION IPN Admin ADM.
                  </t>
                  <t>
                     The Asynchronous Resource Identifier (ARI) for this ADM is 
                     NOT correctly set. A sample ARI is used in this version of the
                     specification and MAY change in future versions of this ADM
                     until an ARI registry is established. This notice will be removed
                     at that time.
                  </t>
                  <t>
                     Agent applications MAY choose to ignore the name, description,
                     or other annotative information associated with the component definitions within this ADM where such items are only used to provide human-readable information or are otherwise not necessary to manage a device.                     
                  </t>              
               </list>
            </t>
         </section>
      
         <section title="Scope" toc="default">
            <t>
               This ADM specifies those components of the Asynchronous 
               Management Model (AMM) common to the configuration of the IPN scheme in ION. 
            </t>
            <t>
               Any Manager software implementing this ADM MUST perform the responsibilities of an AMA Manager as outlined in <xref target="I-D.birrane-dtn-adm"/> as they relate to the objects included in this document.
            </t>
            <t>
               Any Agent software implementing this ADM MUST perform the responsibilities
               of an AMA Agent as outlined in <xref target="I-D.birrane-dtn-adm"/> as they relate to the objects included in this document.
            </t>
         </section>
         
         <section title="Requirements Language" toc="default">
            <t>
               The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
               "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
               document are to be interpreted as described in 
               <xref target="RFC2119" pageno="false" format="default">RFC 2119</xref>.
            </t>
         </section>
               </section>   
        <section title="Structure and Design of this ADM">
        <t>
          The IPN Admin ADM's structure is in accordance to <xref target="I-D.birrane-dtn-adm"/>. This ADM contains metadata, edd, table templates, and controls. Externally Defined Data (EDD) are values that are calculated external to the ADM system. Table Templates are column templates that will be followed by any instance of this table available in the network. They may not be created dynamically within the network by Managers. Controls are predefined and sometimes parameterized opcodes that can be run on an Agent. Controls are preconfigured in Agents and Managers as part of ADM support.There are no variables, report templates, macros, constants, or operators in this ADM at this time. The contents of this ADM are derived from the main functions and data that are needed for configuration in accordance with the IPN scheme. 
        </t>
        <t>

          There are two categories of functions in IPN. They are ones that deal with egress plans (plans for unobstructed and continuous ways of exit travel) and ones that deal with exits for static default routing. These plans and exits are discussed throughout the ADM.
        </t>
        <t>
        All ADMs have metadata that includes the name, namespace, and version of the ADM as well as the name of the organization that is issuing that particular ADM. This is important for identification purposes of the ADMs and to ensure version control.

          All of the functions that are related to the configuration of IPN in ION are present in this document.

           
        </t>
      </section>         

      <section title="Naming and Identification">
         <t>
            This section outlines the namespaces used to uniquely identify
            ADM objects in this specification.
         </t>

         <section title="Namespace and Nicknames">
            <t>
               In accordance with <xref target="I-D.birrane-dtn-adm"/>, every ADM
               is assigned a moderated Namespace. In accordance with 
               <xref target="I-D.birrane-dtn-amp"/>, these namespaces may be
               enumerated for compactness. The namespace and ADM identification
               for these objects is defined as follows.
            </t>
            <texttable anchor="agent_ns" title="Namespace Information" align="center">
               <ttcol align="center">Identifier</ttcol>
               <ttcol align="center">Value</ttcol>
               
               <c>Namespace</c>
               <c>DTN/ION/ipnadmin</c>

               <c>ADM Enumeration</c>
               <c>6</c>
            </texttable>

            <t>
              Given the above ADM enumeration, in accordance with 
              <xref target="I-D.birrane-dtn-amp"/>, the following AMP
              nicknames are defined.
            </t>
            
            <texttable anchor="ionipn_nn" title="ION IPN Admin ADM Nicknames" align="center" style="full">
               <ttcol width="10%" align="center">Nickname</ttcol>
               <ttcol width="45%" align="center">Collection</ttcol>
               
               <c>120</c>
               <c>DTN/ION/ipnadmin/Const</c>

               <c>121</c>
               <c>DTN/ION/ipnadmin/Ctrl</c>

               <c>122</c>
               <c>DTN/ION/ipnadmin/Edd</c>

               <c>123</c>
               <c>DTN/ION/ipnadmin/Mac</c>

               <c>124</c>
               <c>DTN/ION/ipnadmin/Oper</c>

               <c>125</c>
               <c>DTN/ION/ipnadmin/Rptt</c>

               <c>127</c>
               <c>DTN/ION/ipnadmin/Tblt</c>

               <c>129</c>
               <c>DTN/ION/ipnadmin/Var</c>

               <c>130</c>
               <c>DTN/ION/ipnadmin/Mdat</c>

               <c>131-139</c>
               <c>DTN/ION/ipnadmin/Reserved</c>

            </texttable>
         
         </section>
      </section>

      <section title="ION IPN Admin ADM JSON Encoding">
        <t>
          <figure>
            <artwork>
{
  "Mdat": [
    {
      "name": "name",
      "type": "STR",
      "value": "ion_ipn_admin",
      "description": "The human-readable name of the ADM."
    },
    {
      "name": "namespace",
      "type": "STR",
      "value": "DTN/ION/ipnadmin/",
      "description": "The namespace of the ADM"
    },
    {
      "name": "version",
      "type": "STR",
      "value": "v0.0",
      "description": "The version of the ADM"
    },
    {
      "name": "organization",
      "type": "STR",
      "value": "JHUAPL",
      "description": "The name of the issuing organization of the ADM"
    }
  ],
  "Edd": [
    {
      "name": "ion_version",
      "type": "STR",
      "description": "This is the version of ion is that currently 
        installed."
    }
  ],
  "Tblt": [
    {
      "name": "exits",
      "columns": [
        {"type":"UINT","name":"first_node_nbr"},
        {"type":"UINT","name":"last_node_nbr"},
        {"type":"STR","name":"gateway_endpoint_id"}
      ],
      "description": "This table lists all of the exits that are defined in 
        the IPN database for the local node."
    },
    {
      "name": "plans",
      "columns": [
        {"type":"UINT","name":"node_nbr"},
        {"type":"STR","name":"default_duct_expression"}
      ],
      "description": "This table lists all of the egress plans that are 
        established in the IPN database for the local node."
    }
  ],
  "Ctrl": [
    {
      "name": "exit_add",
      "parmspec": [
        {"type":"UINT","name":"first_node_nbr"},
        {"type":"UINT","name":"last_node_nbr"},
        {"type":"STR","name":"gateway_endpoint_id"}
      ],
      "description": "This control establishes an \"exit\" for static 
        default routing."
    },
    {
      "name": "exit_change",
      "parmspec": [
        {"type":"UINT","name":"first_node_nbr"},
        {"type":"UINT","name":"last_node_nbr"},
        {"type":"STR","name":"gatewayEndpointId"}
      ],
      "description": "This control changes the gateway node number for the 
        exit identified by firstNodeNbr and lastNodeNbr."
    },
    {
      "name": "exit_del",
      "parmspec":[
        {"type":"UINT","name":"first_node_nbr"},
        {"type":"UINT","name":"last_node_nbr"}
      ],
      "description": "This control deletes the exit identified by 
        firstNodeNbr and lastNodeNbr."
    },
    {
      "name": "plan_add",
      "parmspec": [
        {"type":"UINT","name":"node_nbr"},
        {"type":"STR","name":"default_duct_expression"}
      ],
      "description": "This control establishes an egress plan for the 
        bundles that must be transmitted to the neighboring node that is 
        identified by it's nodeNbr."
    },
    {
      "name": "plan_change",
      "parmspec": [
        {"type":"UINT","name":"node_nbr"},
        {"type":"STR","name":"default_duct_expression"}
      ],
      "description": "This control changes the duct expression for the 
        indicated plan."
    },
    {
      "name": "plan_del",
      "parmspec": [
        {"type":"UINT","name":"node_nbr"}
      ],
      "description": "This control deletes the egress plan for the node that
        is identified by it's nodeNbr."
    }
  ]
}

      </artwork>
    </figure>
  </t>

      </section>

            
    <section anchor="IANA" title="IANA Considerations" toc="default">
      <t>
    At this time, this protocol has no fields registered by IANA.
    </t>
    </section>
  </middle>

   <!--  *****BACK MATTER ***** -->
   <back>
      <references title="Informative References">
               
         <?rfc include="reference.I-D.draft-birrane-dtn-ama-07"?>
                    
      </references>
      
      <references title="Normative References">
         
         &RFC2119;     
         
         
         
 <?rfc include="reference.I-D.draft-birrane-dtn-adm-02"?>
 <?rfc include="reference.I-D.draft-birrane-dtn-amp-04"?>         
      </references>
    
  </back>
</rfc>