<?xml version="1.0" encoding="us-ascii"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd"[
<!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-agent-02" obsoletes="" updates="" submissionType="IETF" xml:lang="en">

   <!-- ***** FRONT MATTER ***** -->
   <front> 
      <title abbrev="Agent ADM">Asynchronous Management Protocol Agent 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>
      <date year="2016" />
      
       <!-- Meta-data Declarations -->
      <area>General</area>
      <workgroup>Delay-Tolerant Networking</workgroup>
      <keyword>DTN</keyword>
      <keyword>Network Management</keyword>

      <abstract>
         <t>
            This document describes an Application Data Model (ADM) for an
            Asynchronous Management Protocol (AMP) Agent. The AMP
            Agent represents a managed device in the Asynchronous Management
            Architecture. This ADM identifies the Externally Defined Data,
            Variables, Report Templates, Controls, Macros, Literals,
            Operators, and meta-data associated with an Agent. The information
            outlined in this document MUST be supported by any software claiming
            to act as a managed device within the AMP.
         </t>
      </abstract>
   </front>
  
   <middle>
      <section title="Introduction" toc="default">
         <t>
            An Application Data Model (ADM) provides an interface for the 
            management of an application or protocol over the Asynchronous Management Protocol 
            <xref target="AMP"/> that is independent of the nuances 
            of its software implementation. In this respect, the ADM is 
            conceptually similar to the Managed Information Base (MIB) used by SNMP, 
            but contains additional information relating to command opcodes and 
            more expressive syntax for automated behavior.
         </t>  
             
         <section title="Technical Notes" toc="default">
            <t>
               <list style="symbols">
                  <t>
                     This document describes Version 0.3 of the Agent ADM.
                  </t>
                  <t>
                     The OID Root for this ADM is NOT correctly set. A sample
                     OID Root is used in this version of the specification and
                     MAY change in future versions of this ADM.
                  </t>
                  <t>
                     Currently, ADMs are organizing documents and not used to automatically 
                     generate software. Future versions of this ADM should include a 
                     specification in a data modeling language (such as YANG) to better
                     enable software generation.             
                  </t> 
                  <t>
                     Agent applications MAY choose to ignore the name, description,
                     or OID information associated with the component definitions
                     within this ADM as these items are only used to provide 
                     human-readable information associated with user interfaces 
                     and may not be necessary on a deployed managed device.                     
                  </t>              
               </list>
            </t>
         </section>
      
         <section title="Scope" toc="default">
            <t>
               This ADM specifies the globally unique identifiers and descriptions 
               for all items associated with 
               an AMP Agent. Any implementation claiming compliance with an AMP
               Agent and communicating with an AMP Manager MUST be conformant
               with this specification. That is, it must collect or compute all identified data, 
               perform identified Controls/Operators, understand identified 
               Literals/metadata, and generate Report Entries to defined Report
            	Templates.
            </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="OID Tree Identification" toc="default">
         <t>
            The Managed Identifiers (MIDs) used with this ADM encapsulate 
            OIDs within a globally managed OID tree. The OID node from which
            all of the MIDs in this specification derive is called the
            "Agent ADM OID Root". This section identifies this root in the
            overall OID tree.
         </t>
         <texttable title="OID Tree Identification" align="center" style="full">
            <ttcol width="30%"></ttcol>
            <ttcol width="70%"></ttcol>
            <c>
               Agent ADM OID ROOT STRING
            </c>
            <c>
               iso.identified-organization.dod.internet. mgmt.amp.agent
            </c>
            
            <c>
               Agent ADM ROOT ID STRING
            </c>
            <c>
               1.3.6.1.2.3.3
            </c>
            
            <c>
               Agent ADM ROOT OID (octets)
            </c>
            <c>
               2B 06 01 02 03 03
            </c>
         </texttable>
         
         <t>
            The subtree under the Agent ADM OID ROOT contains eight subbranches that capture
            metadata, EDDs, Variables, Report Templates, Controls,
            Literals, Macros, and Operators as illustrated in 
            <xref target="agent_tree"/>.   
            
            <figure align="center" anchor="agent_tree" title="Agent ADM OID Subtree" suppress-title="false" alt="" width="" height="">
               <artwork align="center" xml:space="preserve" name="" type="" alt="" width="" height="">

                  
                              AGENT ADM ROOT
                              (1.3.6.1.2.3.3)
                                    |
                                    |
   Meta-     ED       Vars    Rpt   |
   Data     Data      Def     Tmpl  |  Ctrls  Literals  Macros   Ops
    (.0)    (.1)      (.2)    (.3)  |  (.4)    (.5)      (.6)    (.7)
     +-------+---------+------+-----+---+------+----------+---------+
                  
               </artwork>
            </figure>
            
         </t>
         
         <section title="Nicknames" toc="default">
            <t>
				The nicknames defined by this ADM are given in 
               <xref target="agent_nn"/>.
            </t>
            
            <texttable anchor="agent_nn" title="Agent ADM Nicknames" align="center" style="full">
               <ttcol width="10%" align="center">Unique ID</ttcol>
               <ttcol width="45%" align="center">Label</ttcol>
               <ttcol width="45%" align="center">OID as ASN.1 BER</ttcol>
               
               <c>0</c>
               <c>Agent Metadata</c>
               <c>0x2B060102030300</c>
               
               <c>1</c>
               <c>Agent Primitive Values</c>
               <c>0x2B060102030301</c>

               <c>2</c>
               <c>Agent Computed Values</c>
               <c>0x2B060102030302</c>

               <c>3</c>
               <c>Agent Reports</c>
               <c>0x2B060102030303</c>

               <c>4</c>
               <c>Agent Controls</c>
               <c>0x2B060102030304</c>
               
               <c>5</c>
               <c>Agent Literals</c>
               <c>0x2B060102030305</c>

               <c>6</c>
               <c>Agent Macros</c>
               <c>0x2B060102030306</c>

               <c>7</c>
               <c>Agent Operators</c>
               <c>0x2B060102030307</c>

               <c>8</c>
               <c>Agent Root</c>
               <c>0x2B0601020303</c>
                                                                           
            </texttable>
         
         </section>
         
         <section title="OID Shorthand" toc="default">
            <t>
               The components in this specification are identified by their AMP MID
               value. However, for easier traceability back to the OIDs
               encapsulated in MIDs, an OID string is also provided for
               each component. These OID strings are provided in a shorthand that
               makes use of the nicknames defined in <xref target="agent_nn"/> and
               uses the form [nickname].relative-oid.
            </t>
            <t>
               For example, the OID String [4].3.2.1 corresponds to the OID 
               2B060102030304030201, with 2B060102030304 being the expansion of 
               nickname 04 and 030201 being the relative OID. 
            </t>
         </section>
      </section>
      
    	<section anchor="AGENT_ADM_META" title="Metadata Definitions" toc="default">
    	   <t>
    	      ADM metadata consists of the items necessary to uniquely identify 
    	      the ADM to Managers within the AMA.
    	   </t>
    		
    	   <texttable anchor="agent_adm_metadata" title="AMP Agent Metadata" suppress-title="false" align="center" style="all">
            <ttcol align="center">Item</ttcol>
            <ttcol align="center">MID (Hex)</ttcol>
            <ttcol align="center">OID (Str)</ttcol>
            <ttcol align="center">Description</ttcol>
            <ttcol align="center">Type</ttcol>
            <ttcol align="center">Value</ttcol>
            		            		
               <c>Name</c>
               <c>0x80000100</c>
               <c>[0].0</c>
            	<c>The human-readable ADM name.</c>
            	<c>STR</c>
            	<c>AMP Agent ADM</c>

            	<c>Version</c>
               <c>0x80000101</c>
               <c>[0].1</c>
               <c>The ADM version.</c>
               <c>STR</c>
               <c>v0.2</c>
            		
         </texttable>
      </section>
      
      <section title="Externally Defined Data">
         <t>
            Externally Defined Data (EDD) definitions represent those values that MUST be
            collected by the AMP Agent. Changing or updating EDD
            definitions requires making changes to the AMP Agent application and/
            or its supporting firmware. The EDDs exposed through this ADM as defined as follows.
         </t>
         <texttable anchor="agent_pv" title="AMP Agent EDD Values" suppress-title="false" align="center" style="all">
            <ttcol align="center">Name</ttcol>
            <ttcol align="center">MID</ttcol>
            <ttcol align="center">OID</ttcol>                  
            <ttcol align="center">Description</ttcol>
            <ttcol align="center">Type</ttcol>
                                    
            <c>Num Reports</c>
            <c>0x80010100</c>
            <c>[1].0</c>
            <c># Reports known to the Agent.</c>
            <c>UINT</c>

            <c>Sent Reports</c>
            <c>0x80010101</c>
            <c>[1].1</c>
            <c># Reports sent by this Agent since last reset.</c>
            <c>UINT</c>

            <c>Num TRL</c>
            <c>0x80010102</c>
            <c>[1].2</c>
            <c># Time-Based Rules (TRLs) running on the Agent.</c>
            <c>UINT</c>

            <c>Run TRL</c>
            <c>0x80010103</c>
            <c>[1].3</c>
            <c># Time-Based Rules (TRLs) run by the Agent since last reset.</c>
            <c>UINT</c>
                                             
            <c>Num SRL</c>
            <c>0x80010104</c>
            <c>[1].4</c>
            <c># State-Based Rules (SRLs) running on the Agent.</c>
            <c>UINT</c>

            <c>Run SRL</c>
            <c>0x80010105</c>
            <c>[1].5</c>
            <c># State-Based Rules (SRLs) run by the Agent since last reset.</c>
            <c>UINT</c>
            
            <c>Num Lit</c>
            <c>0x80010106</c>
            <c>[1].6</c>
            <c># Literal definitions known to the Agent.</c>
            <c>UINT</c>
            
            <c>Num Variables</c>
            <c>0x80010107</c>
            <c>[1].7</c>
            <c># Variables known to the Agent.</c>
            <c>UINT</c>
            
            <c>Num Macros</c>
            <c>0x80010108</c>
            <c>[1].8</c>
            <c># Macro definitions configured on the Agent.</c>
            <c>UINT</c>

            <c>Run Macros</c>
            <c>0x80010109</c>
            <c>[1].9</c>
            <c># Macros run by the Agent since the last reset.</c>
            <c>UINT</c>
                                 
            <c>Num Controls</c>
            <c>0x8001010A</c>
            <c>[1].A</c>
            <c># Controls known by the Agent.</c>
            <c>UINT</c>
                  
            <c>Run Controls</c>
            <c>0x8001010B</c>
            <c>[1].B</c>
            <c># Controls run by the Agent since the last reset.</c>
            <c>UINT</c>

            <c>Current Time</c>
            <c>0x8001010C</c>
            <c>[1].C</c>
            <c>Current time.</c>
            <c>TS</c>
            
         </texttable>
      </section>      

      
      <section anchor="compval" title="Variables">
         <t>
            Variable definitions are expressions used to calculate data 
            values, on the fly, from a set of other Variable definitions, 
            EDDs, or Literals using any of the Operators known to the Agent.
         </t> 
         <t>
         	The Variables defined by this ADM are as follows.
         </t>
         <t>
            <figure>
               <artwork> 
+----------+------------+-------+----------------------------+------+
|   Name   |    MID     |  OID  |        Description         | Type |
+----------+------------+-------+----------------------------+------+
|   Num    | 0x81020100 | [2].0 |  # Rules know to the Agent | UINT |
|   Rules  |            |       |      (# TRL + # SRL).      |      |
+----------+------------+-------+----------------------------+------+
|                            Definition                             |
+-------------------------------------------------------------------+ 
| 0x03 0x80010102 0x80010104 0x83070100                             |
+-------------------------------------------------------------------+                            
               </artwork>
            </figure>
         </t>
         <texttable anchor="agent_cv" title="AMP Agent Variables" suppress-title="false" align="center" style="none">
            <ttcol></ttcol>
         </texttable>
               
      </section>      
            
      <section title="Report Templates">
         <t>
            A Report Template (RPTT) is a listing of data items including EDD 
            definitions, Variable definitions, and other Report Templates returned 
            from an AMP Agent.  
         </t> 
         <t>
         	The Report Templates defined by this ADM are as follows.
         </t>
         <t>        
            <figure>
               <artwork> 
+----------+------------+-------+----------------------------+------+
|   Name   |    MID     |  OID  |        Description         | Type |
+----------+------------+-------+----------------------------+------+
|  Full    | 0x82030100 | [3].0 |  All known Meta-Data,      | RPT  |
|  Report  |            |       |  EDD, and VAR Values       |      |
|          |            |       |  known by the Agent.       |      |                  
+----------+------------+-------+----------------------------+------+
|                            Definition                             |
+-------------------------------------------------------------------+ 
| 0x0F 0x80000100 0x80000101 0x80010100 0x80010101 0x80010102       |
|      0x80010103 0x80010104 0x80010105 0x80010106 0x80010107       |
|      0x80010108 0x80010109 0x8001010A 0x8001010B 0x81020100       |
+-------------------------------------------------------------------+                            
               </artwork>
            </figure>
         </t>
         <texttable anchor="agent_rpt" title="AMP Agent Report Templates" suppress-title="false" align="center" style="none">
            <ttcol></ttcol>
         </texttable>
               
      </section>      
                            	    
      <section title="Controls">
         <t>
            Controls represent well-known command opcodes that can be run by 
            the Agent in response to direct requests by an AMP Manager, or in 
            response to time- or state-based rules on the Agent itself.
         </t>
         <t>
            Controls may be (and often are) parameterized.  
            Parameters are captured as special extensions within the MID 
            itself. In cases where a given control accepts parameters,        
            the MID flag byte will note that the encapsulated OID represents a 
            parameterized OID and the OID will be augmented with the parameters
            for a specific instance of the Control, as described in
            <xref target="AMP"/>. 
         </t>            
		<t>
			This section first summarizes and then describes in detail each Control
			defined by this ADM.
		</t>
         <section title="Summary">
                     
            <t>
               The Controls known to an AMP Agent are listed in <xref target="agent_ctrl"/>.
            </t>            
         
            <texttable anchor="agent_ctrl" title="AMP Agent Controls" suppress-title="false" align="center" style="all">
               <ttcol align="center">Name</ttcol>
               <ttcol align="center">MID</ttcol>
               <ttcol align="center">OID</ttcol>
               <ttcol align="center"># Prms</ttcol>
               <ttcol align="center">Prms</ttcol>
            
               <c>ListADMs</c>
               <c>0x83040100</c>
               <c>[4].0</c>
               <c>0</c>
               <c></c>
               
               <c>AddVar</c>
               <c>0xC3040101</c>
               <c>[4].1</c>
               <c>4</c>
               <c>MID Id, EXPR Def, BYTE Type, BYTE Flg</c>
   
               <c>DelVar</c>
               <c>0xC3040102</c>
               <c>[4].2</c>
               <c>1</c>
               <c>MC IDs</c>

               <c>ListVars</c>
               <c>0x83040103</c>
               <c>[4].3</c>
               <c>0</c>
               <c></c>
                  
               <c>DescVars</c>
               <c>0xC3040104</c>
               <c>[4].4</c>
               <c>1</c>
               <c>MC IDs</c>
                                       
               <c>AddRptTpl</c>
               <c>0xC3040105</c>
               <c>[4].5</c>
               <c>2</c>
               <c>MID ID, MC Template</c>
   
               <c>DelRptTpl</c>
               <c>0xC3040106</c>
               <c>[4].6</c>
               <c>1</c>
               <c>MC IDs</c>
   
               <c>ListRptTpls</c>
               <c>0x83040107</c>
               <c>[4].7</c>
               <c>0</c>
               <c></c>
                  
               <c>DescRptTpls</c>
               <c>0xC3040108</c>
               <c>[4].8</c>
               <c>1</c>
               <c>MC IDs</c>
                                 
               <c>GenerateRpts</c>
               <c>0xC3040109</c>
               <c>[4].9</c>
               <c>2</c>
               <c>MC IDs, DC RxMgrs</c>
                                                       
               <c>AddMacro</c>
               <c>0xC304010A</c>
               <c>[4].A</c>
               <c>3</c>
               <c>STR Name, MID ID, MC Def</c>
   
               <c>DelMacro</c>
               <c>0xC304010B</c>
               <c>[4].B</c>
               <c>1</c>
               <c>MC IDs</c>
   
               <c>ListMacros</c>
               <c>0x8304010C</c>
               <c>[4].C</c>
               <c>0</c>
               <c></c>
                  
               <c>DescMacros</c>
               <c>0xC304010D</c>
               <c>[4].D</c>
               <c>1</c>
               <c>MC IDs</c>
   
               <c>AddTRL</c>
               <c>0xC304010E</c>
               <c>[4].E</c>
               <c>5</c>
               <c>MID ID, TS Start, SDNV Period, SDNV Cnt, MC Action</c>
   
               <c>DelTRL</c>
               <c>0xC304010F</c>
               <c>[4].F</c>
               <c>1</c>
               <c>MC IDs</c>
   
               <c>ListTRLs</c>
               <c>0x83040110</c>
               <c>[4].10</c>
               <c>0</c>
               <c></c>
                  
               <c>DescTRLs</c>
               <c>0xC3040111</c>
               <c>[4].11</c>
               <c>1</c>
               <c>MC IDs</c>
   
               <c>AddSRL</c>
               <c>0xC30401012</c>
               <c>[4].12</c>
               <c>5</c>
               <c>MID ID, TS Start, PRED State, SDNV Cnt, MC Action</c>
   
               <c>DelSRL</c>
               <c>0xC3040113</c>
               <c>[4].13</c>
               <c>1</c>
               <c>MC IDs</c>

               <c>ListSRLs</c>
               <c>0x83040114</c>
               <c>[4].14</c>
               <c>0</c>
               <c></c>
                  
               <c>DescSRLs</c>
               <c>0xC3040115</c>
               <c>[4].15</c>
               <c>1</c>
               <c>MC IDs</c>
               
               <c>StoreVar</c>
               <c>0xC3040116</c>
               <c>[4].16</c>
               <c>1</c>
               <c>MC IDs</c>
                              
               <c>ResetCounts</c>
               <c>0x83040117</c>
               <c>[4].17</c>
               <c>0</c>
               <c></c>
                              
               </texttable>
            </section>
         
            <section title="Control Specification">
               <section title="Overview">
                  <t>
                     This section lists the description, parameters, and reports
                     generated for each Control specified in this ADM.
                  </t>
                  <t>
                     The "DESCRIPTION" section lists the functional requirements of the 
                     Control when run on an Agent. 
                  </t>
                  <t>
                     The "PARAMETERS" section illustrates and describes the 
                     ordered set of data items provided to the Control, when 
                     run on the Agent. 
                  </t>
                  <t>
                     The "REPORT ENTRIES GENERATED" section describes the format of
                     any Report Entries sent from the Agent to a Manager as a result of
                     running the Control. The entry itself is modeled as a Typed
                  	 Data Collection (TDC) in the AMP and this section will describe
                  	 the type and number of Data Blobs that will be present in that TDC.
                  </t>  
                  <t>	                  	
                  	 This section ONLY describes Report Entries
                     that are specific to the Control. Cases where policy
                     requires Agents to send summary Report Entries when Controls either
                     run or fail to run due to error, are not considered in this
                     section as they are not specific to any one Control. Any
                     Control summary Report Entries should be as described in
                     <xref target="AMP"/>.
                  </t>
                  <t>
                     Report Entries generated on an Agent by a Control will either be
                     directly sent to the Manager executing the Control or
                     otherwise batched and send with other report messages destined for
                     the receiving Manager. This behavior will be based on the
                     policy associated with the AMP Agent and is not specified
                     in this ADM.
                  </t>
               </section>
               
               
               <section title="ADM Controls">
                  <section title="ListADMs" toc="exclude">
                     
                     <t>
                        <list hangIndent="5" style="hanging">
                           <t hangText="DESCRIPTION"><vspace/>
                              The ListADMs control causes the Agent to produce a Report
                              Entry detailing the name of each ADM supported by the Agent.
                           	  An Agent supports an ADM when the Agent
                              claims full conformance with the components detailed in 
                              the ADM.                                                                          
                           </t>
                           <t hangText="PARAMETERS"><vspace/>
                             This control does not take any parameters.                                             
                           </t>
                           <t hangText="REPORT ENTRIES GENERATED"><vspace/>                       
                              This control will generate a RPTE capturing the 
                              list of ADMs supported by this Agent. 
                              <vspace blankLines="1"/>
                              Each Value in the entry will be of type STR and contain the name of
                              a supported ADM.
                           </t>                                                                                                            
                        </list>
                     </t>
                     
                  </section>
               </section>
               
               <section title="Variable Controls">
                  
                             
                  <section title="AddVar" toc="exclude">
                     
                     <t>
                        <list hangIndent="5" style="hanging">
                           <t hangText="DESCRIPTION"><vspace/>
                              The AddVar Control configures a new Variable 
                           	  definition on the Agent. The generated variable
                              should be read as<vspace blankLines="1"/>
                              Type ID = Eval(Initializer)<vspace blankLines="1"/>
                              Upon successful receipt
                              of the Variable definition, the Agent MUST 
                              store the definition and be able to calculate the 
                              value at some point in the future. This capability
                              MUST exist even through a reset of the Agent application.
                                 <vspace blankLines="1"/>
                              NOTE: It MUST be considered an error if the Id
                                    associated with the new Variable definition
                                    is already defined on the Agent with a different
                                    associated definition or type.                              
                           </t>
                           <t hangText="PARAMETERS"><vspace/>
                              This Control accepts 3 parameters used to identify and
                              define the new Variable as illustrated in <xref target="add_cv_fig"/>.
                              
                              <figure align="center" anchor="add_cv_fig" title="AddVar Parameters">                           
                                 <artwork align="center" xml:space="preserve">
   +--------+-------------+--------+
   |  Id    | Initializer |  Type  |
   | [MID]  |   [EXPR]    | [BYTE] |
   +--------+-------------+--------+
                                 </artwork>
                              </figure>
                              
                              Where:
                              <list>
                                 <t>Id<vspace/>
                                    The MID value identifying the new Variable
                                    definition. This value may appear in future 
                                    Variable definitions, Report Template definitions, or
                                    Expressions. 
                                 </t>
                                 <t>Initializer<vspace/>
                                    The Expression used to calculate the initial Variable value. 
                                 	Once this Expression is used to compute an initial value it 
                                 	may be disarded.
                                 </t>
                                 <t>Type<vspace/>
                                    The data type of the Variable. Note, this
                                    data type may be used to "cast" the value to
                                    something other than what is implied by the
                                    Expression. For example, the Type of a
                                    Variable may be set to INT even if the initializing
                                    Expression computes a 
                                    floating-point value.<vspace blankLines="1"/>
                                    The Type designation MUST be either EXPR or a numeric type.
                                    <vspace blankLines="1"/>
                                    NOTE: If the Variable type is EXPR, then the
                                    initializer Expression itself MUST be copied as the value of
                                    the Variable and MUST NOT be evaluated to generate a value. AMP
                                    does not support Expressions whose evaluation result type is EXPR.
                                 </t>
                              </list>
                                                                                                      
                           </t>
                           <t hangText="REPORT ENTRIES GENERATED"><vspace/>                       
                              This Control generates no Report Entries.  
                           </t>                                                                                                            
                        </list>
                     </t>
                     
                  </section>
                                                                            
                  <section title="DelVars" toc="exclude">
                     
                     <t>
                        <list hangIndent="5" style="hanging">
                           <t hangText="DESCRIPTION"><vspace/>
                              The DelVars Control removes one or more Variable
                              definitions from the Agent. Upon successful receipt
                              and run of this Control, the Agent MUST NOT  
                              store the definition of any identified Variables
                              and MUST NOT recognize these Variables in the future,
                              to include evaluating Expressions already in existence
                              on the Agent. An Agent MUST NOT remove a Variable 
                              that is defined by a supported ADM.
                           </t>
                           <t hangText="PARAMETERS"><vspace/>
                              This Control accepts 1 parameter used to identify the
                              set of Variables to be removed as illustrated in <xref target="del_cv_fig"/>.
                              
                              <figure align="center" anchor="del_cv_fig" title="DelVars Parameters">                           
                                 <artwork align="center" xml:space="preserve">
   +---------------+
   | Ids To Remove |
   |     [MC]      |
   +---------------+
                                 </artwork>
                              </figure>
                              
                              Where:
                              <list>
                                 <t>Ids To Remove =<vspace/>
                                    The list of Variable identifiers to be
                                    removed from the Agent. NOTE: It MUST NOT 
                                    be considered an error if a given Variable
                                    identifier is not found on the Agent.
                                 </t>
                              </list>
                                                                                                      
                           </t>
                           <t hangText="REPORT ENTRIES GENERATED"><vspace/>                       
                              This Control generates no Report Entries.  
                           </t>                                                                                                            
                        </list>
                     </t>
                     
                  </section>
                                                                                                                                                  
                  <section title="ListVars" toc="exclude">
                     
                     <t>
                        <list hangIndent="5" style="hanging">
                           <t hangText="DESCRIPTION"><vspace/>
                              The ListVars Control produces a listing of every
                              Variable identifier (MID) known to the Agent. A
                              Variable is "known" by the Agent if it is
                              defined in an ADM supported by the Agent, or was
                              configured on the Agent by a run of the AddVar
                              Control.  
                           </t>
                           <t hangText="PARAMETERS"><vspace/>
                              This Control takes no parameters.
                           </t>                       
                           <t hangText="REPORT ENTRIES GENERATED"><vspace/>                       
                              This Control will generate a Report Entry capturing the 
                              list of Variable identifiers supported by this 
                              Agent. The RPTE will contain the typed values illustrated in <xref target="lst_cv_fig"/>.
                              
                              <figure align="center" anchor="lst_cv_fig" title="ListVars Report Format">                           
                                 <artwork align="center" xml:space="preserve">
   +--------------------+
   | Known Variable IDs |
   |        [MC]        |
   +--------------------+
                                 </artwork>
                              </figure>
                              
                              Where:
                              <list>
                                 <t>Known Variable IDs<vspace/>
                                    The list of Variable MIDs know by the
                                    Agent.
                                 </t>
                              </list>                                                                                                   
                           </t>                                                             
                        </list>
                     </t>                  
                  </section>
                                 
                  <section title="DescVars" toc="exclude">
                     
                     <t>
                        <list hangIndent="5" style="hanging">
                           <t hangText="DESCRIPTION"><vspace/>
                              The DescVars Control produces a detailed description
                              of every Variable identifier (MID) known to the 
                              Agent. A detailed description of a Variable is
                              the set of information used to configure the Variable
                              on the Agent.
                           </t>
                           <t hangText="PARAMETERS"><vspace/>
                              This Control accepts 1 parameter used to identify the
                              set of Variables to be described as illustrated in <xref target="dsc_cv_parm"/>.
                              
                              <figure align="center" anchor="dsc_cv_parm" title="DescVars Parameters">                           
                                 <artwork align="center" xml:space="preserve">
   +-----------------+
   | Ids To Describe |
   |      [MC]       |
   +-----------------+
                                 </artwork>
                              </figure>
                              
                              Where:
                              <list>
                                 <t>Ids to Describe<vspace/>
                                    The list of Variable identifiers to be
                                    described by the Agent. 
                                 </t>
                              </list>
                           </t>                       
                           <t hangText="REPORT ENTRIES GENERATED"><vspace/>                       
                              This Control will generate a Report Entry capturing the 
                              description of each requested Variable as illustrated in <xref target="dsc_cv_fig"/>.
                              
                              <figure align="center" anchor="dsc_cv_fig" title="DescVars Report Format">                           
                                 <artwork align="center" xml:space="preserve">
                     +-------+
                     | Entry |
                     | [TDC] |
                     +-------+
                        ||
                        ||
     __________________/  \____________________
    /                                          \                                                                                                               
      +--------+--------+--------+    +--------+
      | # VARS | Types  | VAR 1  |... | VAR N  |
      | [SDNV] | [BLOB] | [BLOB] |    | [BLOB] |
      +--------+--------+--------+    +--------+                             
                           ||              
                           ||
              ____________/  \____________             
             /                            \
              +-------+--------+--------+
              |  ID   |  TYPE  | Value  |
              | [MID] | [BYTE] | [BLOB] |
              +-------+--------+--------+
                                    
                                 </artwork>
                              </figure>
                              
                              Where:
                              <list>
                                 <t>VARS<vspace/>
                                    The Typed Data Collection holding the set of
                                    Variables being described.
                                 </t>
                                 <t>ID N<vspace/>
                                    The MID for the Nth Variable.
                                 </t>
                                 <t>TYPE N<vspace/>
                                    The TYPE of the Nth Variable.
                                 </t>
                                 <t>Value N<vspace/>
                                    The serialized value of the Variable, based on its type. 
                                 	Note: this is NOT the initializing
                                 	Expression for the Variable, as the itializing Expression MAY
                                 	be forgotten by the Agent after it is finished initializing the
                                 	Variable value.
                                 </t>
                                                                                                   
                              </list>                                                                                                   
                           </t>                                                             
                        </list>
                     </t>                  
                  </section>                           
               </section>

               <section title="Report Controls">
                                      
                  <section title="AddRptTpl" toc="exclude">
                     <t>
                        <list hangIndent="5" style="hanging">
                           <t hangText="DESCRIPTION"><vspace/>
                              The AddRptTpl Control configures a new Report 
                              Template definition on the Agent. A Report Template definition assigns
                              a single MID value to represent an ordered collection 
                              of other MID values. This ordered collection may include
                              EDDs, Variables, and other Report Templates.
                              <vspace/>
                              Upon successful receipt
                              of the Report Template definition, the Agent MUST 
                              store the definition and be able to produce 
                              Report Entries to this template at some point in the future. This capability
                              MUST persist through a reset of the Agent application.
                              <vspace/>
                              NOTE: It MUST be considered an error if the Id
                                    associated with the new Report Template definition
                                    is already defined on the Agent with a different
                                    associated definition or type. It MUST NOT be
                                    considered an error if the Agent already has
                                    configured the exact same Report Template when
                                    this message is received. Put another way, this
                                    Control should be considered idempotent.                              
                           </t>
                           <t hangText="PARAMETERS"><vspace/>
                              This Control accepts 2 parameters used to identify and
                              define the new Report Template as illustrated in <xref target="add_rpt_fig"/>.
                              
                              <figure align="center" anchor="add_rpt_fig" title="AddRptDef Parameters">                           
                                 <artwork align="center" xml:space="preserve">
   +--------+------------+
   | Rpt Id | Definition |
   | [MID]  |    [MC]    |
   +--------+------------+
                                 </artwork>
                              </figure>
                              
                              Where:
                              <list>
                                 <t>Rpt Id<vspace/>
                                    The MID value identifying the new Report
                                    Template definition. 
                                 </t>
                                 <t>Definition<vspace/>
                                    The ordered collection of MID values to be
                                    included in a Report Entry generated to this template. When
                                    a Report Entry is generated by an Agent in conformance with this template, the values
                                    of each MID in this MC is included in the entry.
                                    However, the identifier for each item from the template is NOT
                                    included in the entry.                                   
                                 </t>
                              </list>
                                                                                                      
                           </t>
                           <t hangText="REPORT ENTRIES GENERATED"><vspace/>                       
                              This Control generates no Report Entries.  
                           </t>                                                                                                            
                        </list>
                     </t>
                     
                  </section>               
                  
                  <section title="DelRptTpls" toc="exclude">
                     
                     <t>
                        <list hangIndent="5" style="hanging">
                           <t hangText="DESCRIPTION"><vspace/>
                              The DelRptTpls Control removes one or more Report
                              Template definitions from the Agent. Upon successful receipt
                              and run of this Control, the Agent MUST NOT  
                              produce Report Entries for this template 
                              An Agent MUST NOT remove a Report Template that is defined
                              by a supported ADM.
                           </t>
                           <t hangText="PARAMETERS"><vspace/>
                              This Control accepts 1 parameter used to identify the
                              set of Report Templates definitions to be removed as illustrated 
                           	in <xref target="del_rpt_fig"/>.
                              
                              <figure align="center" anchor="del_rpt_fig" title="DelRptTpls Parameters">                           
                                 <artwork align="center" xml:space="preserve">
   +---------------+
   | Ids To Remove |
   |     [MC]      |
   +---------------+
                                 </artwork>
                              </figure>
                              
                              Where:
                              <list>
                                 <t>Ids To Remove<vspace/>
                                    The list of Report Template identifiers to be
                                    removed from the Agent. NOTE: It MUST NOT 
                                    be considered an error if a given Report
                                    Template identifier is not found on the Agent.
                                 </t>
                              </list>
                                                                                                      
                           </t>
                           <t hangText="REPORT ENTRIES GENERATED"><vspace/>                       
                              This control generates no Report Entries.  
                           </t>                                                                                                            
                        </list>
                     </t>
                     
                  </section>                  
                  
                  <section title="ListRptTpls" toc="exclude">
                     
                     <t>
                        <list hangIndent="5" style="hanging">
                           <t hangText="DESCRIPTION"><vspace/>
                              The ListRptTpls Control produces a listing of every
                              Report Template identifier (MID) known to the Agent. 
                           </t>
                           <t hangText="PARAMETERS"><vspace/>
                              This Control takes no parameters.
                           </t>                       
                           <t hangText="REPORT ENTRIES GENERATED"><vspace/>                       
                              This Control will generate a Report Entry capturing the 
                              list of Report Template identifiers supported by this 
                              Agent. The RPTE will contain the typed values illustrated in <xref target="lst_rpt_fig"/>.
                              
                              <figure align="center" anchor="lst_rpt_fig" title="ListRptTpls Report Format">                           
                                 <artwork align="center" xml:space="preserve">
   +---------------+
   | Known Reports |
   |     [MC]      |
   +---------------+
                                 </artwork>
                              </figure>
                              
                              Where:
                              <list>
                                 <t>Known Reports<vspace/>
                                    The list of Report Template MIDs known by the
                                    Agent.
                                 </t>
                              </list>                                                                                                   
                           </t>                                                             
                        </list>
                     </t>                  
                  </section>
                                 
                  <section title="DescRptTpls" toc="exclude">
                     
                     <t>
                        <list hangIndent="5" style="hanging">
                           <t hangText="DESCRIPTION"><vspace/>
                              The DescRptTpls Control produces a detailed description
                              of every Report Template identifier (MID) known to the 
                              Agent. 
                           </t>
                           <t hangText="PARAMETERS"><vspace/>
                              This Control accepts 1 parameter used to identify the
                              set of Report Templates to be described as illustrated 
                           	  in <xref target="dsc_rpt_parm"/>.
                              
                              <figure align="center" anchor="dsc_rpt_parm" title="DescRptTpls Parameters">                           
                                 <artwork align="center" xml:space="preserve">
   +-----------------+
   | Ids To Describe |
   |      [MC]       |
   +-----------------+
                                 </artwork>
                              </figure>
                              
                              Where:
                              <list>
                                 <t>Ids to Describe<vspace/>
                                    The list of Report Template identifiers to be
                                    described by the Agent. 
                                 </t>
                              </list>
                           </t>                       
                           <t hangText="REPORT ENTRIES GENERATED"><vspace/>                       
                              This Control will generate a Report Entry capturing the 
                              description of each requested Report Template known
                              by the receiving Agent as illustrated in <xref target="dsc_rpt_fig"/>.
                              
                              <figure align="center" anchor="dsc_rpt_fig" title="DescRptTpls Report Format">                           
                                 <artwork align="center" xml:space="preserve">
                     +-------+
                     | Entry |
                     | [TDC] |
                     +-------+
                        ||
                        ||
     __________________/  \____________________
    /                                          \                                                                                                               
      +--------+--------+--------+    +--------+
      | # Tpls | Types  | Tpl 1  |... | Tpl N  |
      | [SDNV] | [BLOB] | [BLOB] |    | [BLOB] |
      +--------+--------+--------+    +--------+                             
                           ||              
                           ||
                 _________/  \_________             
                /                      \
                 +-------+------------+
                 |  ID   | Definition |
                 | [MID] |    [MC]    |
                 +-------+------------+
                                    
                                 </artwork>
                              </figure>
                              
                              Where:
                              <list>
                              	<t>Tpl N <vspace/>
                              		The Nth Report Template being described.
                              	</t>
                                 <t>ID N<vspace/>
                                    The MID identifying the Nth Report Template.
                                 </t>
                                 <t>Definition N<vspace/>
                                    The MC identifying the Nth Report Template.
                                 </t>
                              </list>                                                                                                   
                           </t>                                                             
                        </list>
                     </t>                  
                  </section>                              
                  
                  <section title="GenerateRpts" toc="exclude">
                     
                     <t>
                        <list hangIndent="5" style="hanging">
                           <t hangText="DESCRIPTION"><vspace/>
                              The GenerateRpts Control causes the Agent to produce
                              a Report Entry for each identified Report Templates and send them
                           	  to one or more identified Managers. 
                           </t>
                           <t hangText="PARAMETERS"><vspace/>
                              This Control accepts 2 parameters used to identify the
                              set of Report Entries to be generated as illustrated in <xref target="gen_rpt_parm"/>.
                              
                              <figure align="center" anchor="gen_rpt_parm" title="GenerateRpts Parameters">                           
                                 <artwork align="center" xml:space="preserve">
   +---------------------+---------------------+
   | Reports to Generate | Managers to Receive |
   |        [MC]         |        [DC]         |
   +---------------------+---------------------+
                                 </artwork>
                              </figure>
                              
                              Where:
                              <list>
                                 <t>Reports to Generate<vspace/>
                                    The list of Report Templates that should have Report Entries generated
                                    for them by the Agent. 
                                 </t>
                                 <t>Managers to Receive<vspace/>
                                    The list of URIs identifying the Managers that
                                    should receive the generated reports. Note: a
                                    DC of length 0 is allowed by this Control. When
                                    such a DC is provided, the generated Report Entries
                                    MUST be sent only to the Manager that sent
                                    the Control. 
                                 </t>
                                                               
                              </list>
                           </t>                       
                           <t hangText="REPORT ENTRIES GENERATED"><vspace/>                       
                              This Control will generate a Report Entry capturing the 
                              description of each requested Report Template as known
                              by the receiving Agent.  The format for
                              this Report Entry is illustrated in <xref target="gen_rpt_fig"/>.
                              
                              <figure align="center" anchor="gen_rpt_fig" title="GenerateRpts Report Entry Format">                           
                                 <artwork align="center" xml:space="preserve">
                         +---------+     +---------+
                         | Entry 1 |     | Entry N |
                         | [RPTE]  | ... |  [RPTE] |
                         +---------+     +---------+          
                              ||
                              ||
                    _________/  \________
                   /                     \                                                                                                               
                     +-------+--------+
                     |  ID   | Values |
                     | [MID] |  [TDC] |
                     +-------+--------+                                                               
                                 ||              
                                 ||
     ___________________________/  \_______________________________               
    /                                                              \
     +----------+-------------+---------+---------+     +---------+ 
     | # Values | Value Types | Value 1 | Value 2 |     | Value N | 
     |  [SDNV]  |    [BLOB]   | [BLOB]  |  [BLOB] | ... | [BLOB]  | 
     +----------+-------------+---------+---------+     +---------+ 
                                    
                                 </artwork>
                              </figure>
                              
                              Where:
                              <list>
                                 <t>Entry N <vspace/>
                                    The Nth Report Entry generated by this Control. Each
                                    Report Entry consists of an MID ID and a TDC of values. 
                                 </t>
                              </list>                                                                                                   
                           </t>                                                             
                        </list>
                     </t>                  
                  </section>   
               </section>
               
               <section title="Macro Controls">

                  <section title="AddMacroDef" toc="exclude">
                     <t>
                        <list hangIndent="5" style="hanging">
                           <t hangText="DESCRIPTION"><vspace/>
                              The AddMacroDef Control configures a new Macro 
                              definition on the Agent. A Macro definition assigns
                              a single MID value to represent an ordered collection 
                              of Controls and/or other Macros to be run in sequence. 
                              <vspace/>
                              Upon successful receipt
                              of the Macro definition, the Agent MUST 
                              store the definition and be able to run this Macro 
                              at some point in the future. This capability
                              MUST exist even through a reset of the Agent application.
                              <vspace/>
                              NOTE: It MUST be considered an error if the Id
                                    associated with the new Macro definition
                                    is already defined on the Agent with a different
                                    associated definition or type. It MUST NOT be
                                    considered an error if the Agent already has
                                    configured the exact same Macro when
                                    this message is received. Put another way, this
                                    Control should be considered idempotent.                              
                           </t>
                           <t hangText="PARAMETERS"><vspace/>
                              This Control accepts 3 parameters used to identify and
                              define the new Macro as illustrated in <xref target="add_macro_fig"/>.
                              
                              <figure align="center" anchor="add_macro_fig" title="AddMacroDef Parameters">                           
                                 <artwork align="center" xml:space="preserve">
   +------------+----------+----------+
   | Macro Name | Macro Id | Controls |
   |   [STR]    |  [MID]   |   [MC]   |
   +------------+----------+----------+
                                 </artwork>
                              </figure>
                              
                              Where:
                              <list>
                                 <t>Macro Name<vspace/>
                                    The human-readable name of the Macro. Agents
                                    MAY choose to ignore this value.
                                 </t>
                                 <t>Macro Id<vspace/>
                                    The MID value identifying the new Macro
                                    definition. 
                                 </t>
                                 <t>Controls<vspace/>
                                    The ordered collection of Controls and/or other Macros to be run
                                    when the Macro is run. The Controls that define
                                    the Macro must include parameters in their
                                    MID identification when added to the Macro. This
                                    ADM provides no capability to add parameters
                                    to the Controls of a Macro after the Macro has
                                    been defined.
                                 </t>
                              </list>
                                                                                                      
                           </t>
                           <t hangText="REPORT ENTRIES GENERATED"><vspace/>                       
                              This Control generates no Report Entries.  
                           </t>                                                                                                            
                        </list>
                     </t>                  
                  </section>               
                  
                  <section title="DelMacroDefs" toc="exclude">
                     
                     <t>
                        <list hangIndent="5" style="hanging">
                           <t hangText="DESCRIPTION"><vspace/>
                              The DelMacroDefs Control removes one or more Macro
                              definitions from the Agent. Upon successful receipt
                              and run of this Control, the Agent MUST NOT  
                              run the removed Macros and MUST NOT recognize 
                              these Macros in the future, to include rule actions 
                              requesting that the removed Macros be run. 
                           </t>
                           <t hangText="PARAMETERS"><vspace/>
                              This Control accepts 1 parameter used to identify the
                              set of Macro definitions to be removed as illustrated in <xref target="del_macro_fig"/>.
                              
                              <figure align="center" anchor="del_macro_fig" title="DelMacroDefs Parameters">                           
                                 <artwork align="center" xml:space="preserve">
   +---------------+
   | Ids To Remove |
   |     [MC]      |
   +---------------+
                                 </artwork>
                              </figure>
                              
                              Where:
                              <list>
                                 <t>Ids To Remove<vspace/>
                                    The list of Macros to be
                                    removed from the Agent. NOTE: It MUST NOT 
                                    be considered an error if a given Macro
                                    identifier is not found on the Agent.
                                 </t>
                              </list>
                                                                                                      
                           </t>
                           <t hangText="REPORT ENTRIES GENERATED"><vspace/>                       
                              This Control generates no Report Entries.  
                           </t>                                                                                                            
                        </list>
                     </t>
                     
                  </section>
                                    
                  <section title="ListMacroDefs" toc="exclude">
                     
                     <t>
                        <list hangIndent="5" style="hanging">
                           <t hangText="DESCRIPTION"><vspace/>
                              The ListMacroDefs Control produces a listing of every
                              Macro identifier (MID) known to the Agent. 
                           </t>
                           <t hangText="PARAMETERS"><vspace/>
                              This Control takes no parameters.
                           </t>                       
                           <t hangText="REPORT ENTRIES GENERATED"><vspace/>                       
                              This control will generate a Report Entry capturing the 
                              list of Macro identifiers supported by this 
                              Agent. The RPTE will contain the typed values illustrated in 
                           	  <xref target="lst_macro_fig"/>.
                              
                              <figure align="center" anchor="lst_macro_fig" title="ListMacroDefs Report Entry Format">                           
                                 <artwork align="center" xml:space="preserve">
   +--------------+
   | Known Macros |
   |     [MC]     |
   +--------------+
                                 </artwork>
                              </figure>
                              
                              Where:
                              <list>
                                 <t>Known Macros<vspace/>
                                    The list of Macro MIDs known by the Agent.
                                 </t>
                              </list>                                                                                                   
                           </t>                                                             
                        </list>
                     </t>                  
                  </section>
                                 
                  <section title="DescMacroDefs" toc="exclude">
                     
                     <t>
                        <list hangIndent="5" style="hanging">
                           <t hangText="DESCRIPTION"><vspace/>
                              The DescMacroDefs Control produces a detailed description
                              of every Macro identifier (MID) known to the 
                              Agent. 
                           </t>
                           <t hangText="PARAMETERS"><vspace/>
                              This Control accepts 1 parameter used to identify the
                              set of Macros to be described as illustrated in <xref target="dsc_macro_parm"/>.
                              
                              <figure align="center" anchor="dsc_macro_parm" title="DescMacroDefs Parameters">                           
                                 <artwork align="center" xml:space="preserve">
   +-----------------+
   | Ids To Describe |
   |      [MC]       |
   +-----------------+
                                 </artwork>
                              </figure>
                              
                              Where:
                              <list>
                                 <t>Ids to Describe<vspace/>
                                    The list of Macro identifiers to be
                                    described by the Agent. 
                                 </t>
                              </list>
                           </t>                       
                           <t hangText="REPORT ENTRIES GENERATED"><vspace/>                       
                              This Control will generate a Report Entry capturing the 
                              description of each requested Macro as known
                              by the receiving Agent.  The format for
                              this entry is illustrated in <xref target="dsc_macro_fig"/>.
                              
                              <figure align="center" anchor="dsc_macro_fig" title="DescMacroDefs Report Format">                           
                                 <artwork align="center" xml:space="preserve">
                     +-------+
                     | Entry |
                     | [TDC] |
                     +-------+
                        ||
                        ||
     __________________/  \____________________
    /                                          \                                                                                                               
      +--------+--------+------------+   +------------+
      | # Defs | Types  | MacroDef 1 |...| MacroDef N |
      | [SDNV] | [BLOB] |   [BLOB]   |   |   [BLOB]   |
      +--------+--------+------------+   +------------+                             
                             ||              
                             ||
                    ________/  \__________             
                   /                      \
                    +-------+------------+
                    |  ID   | Definition |
                    | [MID] |    [MC]    |
                    +-------+------------+
                                    
                                 </artwork>
                              </figure>
                              
                              Where:
                              <list>
                                 <t>Defs<vspace/>
                                    The Typed Data Collection holding the set of
                                    Macros being described. Each Data Blob in the TDC will 
                                 	hold an element of type MACRO. 
                                 </t>
                              </list>                                                                                                   
                           </t>                                                             
                        </list>
                     </t>                  
                  </section>                   
               </section>
                  
               
               <section title="TRL Controls">
                                    
               <section title="AddTimeRule" toc="exclude">
                     <t>
                        <list hangIndent="5" style="hanging">
                           
                           <t hangText="DESCRIPTION"><vspace/>
                              The AddTimeRule Control configures a new Time-Based Rule (TRL) 
                              definition on the Agent. A TRL instructs the Agent to
                              run an action (a collection of Controls and/or Macros) over time, and to
                              stop after so many runs of the action.  
                              <vspace blankLines="1"/>
                              Upon successful receipt
                              of the TRL definition, the Agent MUST 
                              store the definition and be able to run this TRL 
                              at some point in the future. This capability
                              MUST exist even through a reset of the Agent.
                              Additionally, through a reset, the Agent must remember
                              the number of runs of the action, even if the periodic
                              evaluation of the rule is offset by the time taken
                              by the reset.
                              <vspace blankLines="1"/>
                              NOTE: It MUST be considered an error if the Id
                                    associated with the new TRL definition
                                    is already defined on the Agent.                              
                           </t>
                           
                           <t hangText="PARAMETERS"><vspace/>
                              This Control accepts 5 parameters used to identify and
                              define the new TRL as illustrated in <xref target="add_trl_fig"/>.
                              
                              <figure align="center" anchor="add_trl_fig" title="AddTimeRule Parameters">                           
                                 <artwork align="center" xml:space="preserve">
   +-------+-------+------------+--------+--------+
   |  Id   | Start | Period (s) | Count  | Action |
   | [MID] |  [TS] |   [SDNV]   | [SDNV] |  [MC]  |
   +-------+-------+------------+--------+--------+          

                                 </artwork>
                              </figure>
                              
                              Where:
                              <list>
                                 <t>Id<vspace />
                                    The MID used to identify this TRL.                                 
                                 </t>
                                 <t>Start<vspace/>
                                    The time at which the TRL should start to
                                    be evaluated. This timestamp may represent
                                    either a relative or absolute time.
                                 </t>
                                 <t>Period<vspace/>
                                    The interval, measured in seconds, between
                                    runs of the action. 
                                 </t>
                                 <t>Count<vspace/>
                                    The number of times to run the action 
                                    associated with the TRL, after which the TRL
                                    should be removed from the Agent. The special
                                    value of 0 indicates that the rule should
                                    be run indefinitely until it is removed by
                                    a DelTimeRules Control.
                                 </t>
                                 <t>Action<vspace/>
                                    The collection of Controls or Macros to be run periodically by the TRL.
                                 </t>
                              </list>
                                                                                                      
                           </t>
                           <t hangText="REPORT ENTRIES GENERATED"><vspace/>                       
                              This Control generates no Report Entries.  
                           </t>                                                                                                            
                        </list>
                     </t>                  
                  </section>               
                                                              
                  <section title="DelTimeRules" toc="exclude">
                     
                     <t>
                        <list hangIndent="5" style="hanging">
                           <t hangText="DESCRIPTION"><vspace/>
                              The DelTimeRules Control removes one or more TRL
                              definitions from the Agent. Upon successful receipt
                              and run of this Control, the Agent MUST NOT  
                              run the removed TRLs and MUST NOT recognize 
                              these TRLs in the future. 
                           </t>
                           <t hangText="PARAMETERS"><vspace/>
                              This Control accepts 1 parameter used to identify the
                              set of TRL definitions to be removed as illustrated in <xref target="del_trl_fig"/>.
                              
                              <figure align="center" anchor="del_trl_fig" title="DelTimeRules Parameters">                           
                                 <artwork align="center" xml:space="preserve">
   +---------------+
   | Ids To Remove |
   |     [MC]      |
   +---------------+
                                 </artwork>
                              </figure>
                              
                              Where:
                              <list>
                                 <t>Ids To Remove<vspace/>
                                    The list of TRLs to be
                                    removed from the Agent. NOTE: It MUST NOT 
                                    be considered an error if a given TRL
                                    identifier is not found on the Agent.
                                 </t>
                              </list>
                                                                                                      
                           </t>
                           <t hangText="REPORT ENTRIES GENERATED"><vspace/>                       
                              This Control generates no Report Entries.  
                           </t>                                                                                                            
                        </list>
                     </t>
                     
                  </section>
                  
                  <section title="ListTimeRules" toc="exclude">
                     
                     <t>
                        <list hangIndent="5" style="hanging">
                           <t hangText="DESCRIPTION"><vspace/>
                              The ListTimeRules Control produces a listing of every
                              TRL identifier (MID) known to the Agent.
                           </t>
                           <t hangText="PARAMETERS"><vspace/>
                              This Control takes no parameters.
                           </t>                       
                           <t hangText="REPORT ENTRIES GENERATED"><vspace/>                       
                              This Control will generate a Report Entry capturing the 
                              list of TRL MIDs supported by this 
                              Agent. The RPTE will contain the typed values illustrated in <xref target="lst_trl_fig"/>.
                              
                              <figure align="center" anchor="lst_trl_fig" title="ListTimeRules Report Entry Format">                           
                                 <artwork align="center" xml:space="preserve">
   +------------+
   | Known TRLs |
   |   [MC]     |
   +------------+
                                 </artwork>
                              </figure>
                              
                              Where:
                              <list>
                                 <t>Known TRLs<vspace/>
                                    The list of TRL MIDs known by the Agent.
                                 </t>
                              </list>                                                                                                   
                           </t>                                                             
                        </list>
                     </t>                  
                  </section>
                                 

                  <section title="DescTimeRules" toc="exclude">
                     
                     <t>
                        <list hangIndent="5" style="hanging">
                           <t hangText="DESCRIPTION"><vspace/>
                              The DescTimeRules Control produces a detailed description
                              of every TRL identifier (MID) known to the 
                              Agent. 
                           </t>
                           <t hangText="PARAMETERS"><vspace/>
                              This Control accepts 1 parameter used to identify the
                              set of TRLs to be described as illustrated in <xref target="dsc_trl_parm"/>.
                              
                              <figure align="center" anchor="dsc_trl_parm" title="DescTimeRules Parameters">                           
                                 <artwork align="center" xml:space="preserve">
   +-----------------+
   | Ids To Describe |
   |      [MC]       |
   +-----------------+
                                 </artwork>
                              </figure>
                              
                              Where:
                              <list>
                                 <t>Ids to Describe<vspace/>
                                    The list of TRL identifiers to be
                                    described by the Agent. 
                                 </t>
                              </list>
                           </t>                       
                           <t hangText="REPORT ENTRIES GENERATED"><vspace/>                       
                              This control will generate a Report Entry capturing the 
                              description of each requested TRL as known
                              by the receiving Agent.  The format for
                              this Report Entry is illustrated in <xref target="dsc_trl_fig"/>.
                              
                              <figure align="center" anchor="dsc_trl_fig" title="DescTimeRules Report Entry Format">                           
                                 <artwork align="center" xml:space="preserve">
                     +-------+
                     | Entry |
                     | [TDC] |
                     +-------+
                        ||
                        ||
     __________________/  \____________________
    /                                          \                                                                                                               
      +--------+--------+--------+    +--------+
      | # TRLs | Types  | TRL 1  |... | TRL N  |
      | [SDNV] | [BLOB] | [BLOB] |    | [BLOB] |
      +--------+--------+--------+    +--------+                             
                           ||              
                           ||
       ___________________/  \_____________________             
      /                                            \
       +-------+-------+--------+--------+--------+     
       |  ID   | Start | Period | Count  | Action |
       | [MID] | [TS]  | [SDNV] | [SDNV] |  [MC]  |  
       +-------+-------+--------+--------+--------+ 
                                       
                                 </artwork>
                              </figure>
                           </t>                                                             
                        </list>
                     </t>                  
                  </section>                  
                  
               </section>          
               
               <section title="SRL Controls">
                                    
               <section title="AddStateRule" toc="exclude">
                     <t>
                        <list hangIndent="5" style="hanging">
                           
                           <t hangText="DESCRIPTION"><vspace/>
                              The AddStateRule Control configures a new State-Based Rule (SRL) 
                              definition on the Agent. A SRL instructs the Agent to
                              run some action when a given Predicate evaluates to
                              true, and to stop after so many runs of an action.
                              The Agent MUST evaluate the SRL Predicate every second.  
                              <vspace/>
                              Upon successful receipt
                              of the SRL definition, the Agent MUST 
                              store the definition and be able to run this SRL 
                              at some point in the future. This capability
                              MUST exist even through a reset of the Agent application.
                              Additionally, through a reset, the Agent must remember
                              the number of runs of the action.
                              <vspace/>
                              NOTE: It MUST be considered an error if the Id
                                    associated with the new SRL definition
                                    is already defined on the Agent.                              
                           </t>
                           
                           <t hangText="PARAMETERS"><vspace/>
                              This Control accepts 5 parameters used to identify and
                              define the new SRL as illustrated in <xref target="add_srl_fig"/>.
                              
                              <figure align="center" anchor="add_srl_fig" title="AddStateRule Parameters">                           
                                 <artwork align="center" xml:space="preserve">
+-------+-------+--------+--------+--------+
|  ID   | START |  COND  | COUNT  | ACTION |
| [MID] | [TS]  | [PRED] | [SDNV] |  [MC]  |
+-------+-------+--------+--------+--------+
                                    
                                 </artwork>
                              </figure>
                              
                              Where:
                              <list>
                                 <t>Id<vspace />
                                    The MID used to identify this SRL.                                                                    
                                 </t>
                                 <t>Start<vspace/>
                                    The time at which the SRL should start to
                                    be evaluated. This timestamp may represent
                                    either a relative or absolute timestamp.
                                 </t>
                                 <t>Condition<vspace/>
                                    The Predicate that MUST evaluate 
                                    to true in order to run the action associated
                                    with this SRL. 
                                 </t>
                                 <t>Count<vspace/>
                                    The number of times to evaluate the Predicate 
                                    associated with the SRL, after which the SRL
                                    should be removed from the Agent. The special
                                    value of 0 indicates that the SRL should
                                    be evaluated indefinitely until it is removed by
                                    a DelStateRules Control.
                                 </t>
                                 <t>Action<vspace/>
                                    The collection of Controls and Macros to be run when 
                                    the SRL Predicate evaluates to true.
                                 </t>
                              </list>
                                                                                                      
                           </t>
                           <t hangText="REPORT ENTRIES GENERATED"><vspace/>
                              This Control generates no Report Entries.  
                           </t>                                                                                                            
                        </list>
                     </t>                  
                  </section>               
                                                              
                  <section title="DelStateRules" toc="exclude">
                     
                     <t>
                        <list hangIndent="5" style="hanging">
                           <t hangText="DESCRIPTION"><vspace/>
                              The DelStateRules Control removes one or more SRL
                              definitions from the Agent. Upon successful receipt
                              and run of this Control, the Agent MUST NOT  
                              run the removed SRLs and MUST NOT recognize 
                              these SRLs in the future. 
                           </t>
                           <t hangText="PARAMETERS"><vspace/>
                              This Control accepts 1 parameter used to identify the
                              set of SRL definitions to be removed as illustrated in <xref target="del_srl_fig"/>.
                              
                              <figure align="center" anchor="del_srl_fig" title="DelStateRules Parameters">                           
                                 <artwork align="center" xml:space="preserve">
   +---------------+
   | Ids To Remove |
   |     [MC]      |
   +---------------+
                                 </artwork>
                              </figure>
                              
                              Where:
                              <list>
                                 <t>Ids To Remove<vspace/>
                                    The list of SRLs to be
                                    removed from the Agent. NOTE: It MUST NOT 
                                    be considered an error if a given SRL
                                    identifier is not found on the Agent.
                                 </t>
                              </list>
                                                                                                      
                           </t>
                           <t hangText="REPORT ENTRIES GENERATED"><vspace/>                       
                              This Control generates no Report Entries.  
                           </t>                                                                                                            
                        </list>
                     </t>
                     
                  </section>
                                                    
                  <section title="ListStateRules" toc="exclude">
                     
                     <t>
                        <list hangIndent="5" style="hanging">
                           <t hangText="DESCRIPTION"><vspace/>
                              The ListStateRules Control produces a listing of every
                              SRL identifier (MID) known to the Agent. 
                           </t>
                           <t hangText="PARAMETERS"><vspace/>
                              This Control takes no parameters.
                           </t>                       
                           <t hangText="REPORT ENTRIES GENERATED"><vspace/>                       
                              This Control will generate a Report Entry capturing the 
                              list of SRL MIDs supported by this 
                              Agent. The RPTE will contain the typed values illustrated in <xref target="lst_srl_fig"/>.
                              
                              <figure align="center" anchor="lst_srl_fig" title="ListStateRules Report Entry Format">                           
                                 <artwork align="center" xml:space="preserve">
   +------------+
   | Known SRLs |
   |   [MC]     |
   +------------+
                                 </artwork>
                              </figure>
                              
                              Where:
                              <list>
                                 <t>Known SRLs =<vspace/>
                                    The list of SRL MIDs known by the Agent.
                                 </t>
                              </list>                                                                                                   
                           </t>                                                             
                        </list>
                     </t>                  
                  </section>
                                 

                  <section title="DescStateRules" toc="exclude">
                     
                     <t>
                        <list hangIndent="5" style="hanging">
                           <t hangText="DESCRIPTION"><vspace/>
                              The DescStateRules Control produces a detailed description
                              of every SRL identifier (MID) known to the 
                              Agent.
                           </t>
                           <t hangText="PARAMETERS"><vspace/>
                              This Control accepts 1 parameter used to identify the
                              set of SRLs to be described as illustrated in <xref target="dsc_srl_parm"/>.
                              
                              <figure align="center" anchor="dsc_srl_parm" title="DescStateRules Parameters">                           
                                 <artwork align="center" xml:space="preserve">
   +-----------------+
   | Ids To Describe |
   |      [MC]       |
   +-----------------+
                                 </artwork>
                              </figure>
                              
                              Where:
                              <list>
                                 <t>Ids to Describe<vspace/>
                                    The list of SRL identifiers to be
                                    described by the Agent. 
                                 </t>
                              </list>
                           </t>                       
                           <t hangText="REPORT ENTRIES GENERATED"><vspace/>                       
                              This Control will generate a Report capturing the 
                              description of each requested SRL as known
                              by the receiving Agent.  The format for
                              this Report Entry is illustrated in <xref target="dsc_srl_fig"/>.
                              
                              <figure align="center" anchor="dsc_srl_fig" title="DescStateRules Report Entry Format">                           
                                 <artwork align="center" xml:space="preserve">
                     +-------+
                     | Entry |
                     | [TDC] |
                     +-------+
                        ||
                        ||
     __________________/  \____________________
    /                                          \                                                                                                               
      +--------+--------+--------+    +--------+
      | # SRLs | Types  | SRL 1  |... | SRL N  |
      | [SDNV] | [BLOB] | [BLOB] |    | [BLOB] |
      +--------+--------+--------+    +--------+                             
                            ||              
                            ||
         __________________/  \____________________
        /                                          \
        +-------+-------+--------+--------+-------+
        |  ID   | START |  COND  | COUNT  |   ACT |
        | [MID] | [TS]  | [PRED] | [SDNV] |  [MC] |
        +-------+-------+--------+--------+-------+
                                                                           
                                 </artwork>
                              </figure>
                           </t>                                                             
                        </list>
                     </t>                  
                  </section>                  
                  
               </section>                                
   
                                                       
               <section title="ResetCounts" toc="exclude">
                     
                  <t>
                     <list hangIndent="5" style="hanging">
                        <t hangText="DESCRIPTION"><vspace/>
                           The ResetCounts Control resets all Agent ADM statistics 
                           reported in the Agent ADM report. This reset sets all
                           counters back to 0 and sets the "Last Reset Time" to
                           the time when this control was run. 
                        </t>
                        <t hangText="PARAMETERS"><vspace/>
                           This Control takes no parameters.
                        </t>                       
                        <t hangText="REPORT ENTRIES GENERATED"><vspace/>                       
                           This Control generates no Report Entries.
                        </t>
                     </list>
                  </t>                  
               </section>
                                   
            </section>
       </section>     
      
    	<section title="Literals">
    	   <t>
    	      This section describes the set of Literals available to
    	      all AMP Agents. Applications and protocols in other ADMs do not
    	      need to redefine these Literals, as they may be used in any
    	      expressions evaluated by any Agent. 
    	   </t>
    	   
         <texttable anchor="agent_lit" title="AMP Agent Literals" suppress-title="false" align="center" style="all">
               <ttcol align="center">Name</ttcol>
               <ttcol align="center">MID (Hex)</ttcol>
               <ttcol align="center">OID</ttcol>
               <ttcol align="center">Value</ttcol>
               <ttcol align="center">Type</ttcol>
               <ttcol align="center">Params</ttcol>
            
               <c>AMP Epoch</c>
               <c>87050100</c>
               <c>[5].0</c>
               <c>1347148800</c>
               <c>UINT</c>
               <c>None</c>
               
               <c>User VAST</c>
               <c>C7050101</c>
               <c>[5].1</c>
               <c>Varies</c>
               <c>INT</c>
               <c>VAST Value</c>
                              
               <c>User UVAST</c>
               <c>C7050102</c>
               <c>[5].2</c>
               <c>Varies</c>
               <c>UINT</c>
               <c>SDNV Value</c>

               <c>User Float</c>
               <c>C7050103</c>
               <c>[5].3</c>
               <c>Varies</c>
               <c>REAL32</c>
               <c>BLOB Value</c>
                                             
               <c>User Double</c>
               <c>C7050104</c>
               <c>[5].4</c>
               <c>Varies</c>
               <c>REAL64</c>
               <c>BLOB Value</c>

               <c>User String</c>
               <c>C7050105</c>
               <c>[5].5</c>
               <c>Varies</c>
               <c>STR</c>
               <c>STR Value</c>

               <c>User BLOB</c>
               <c>C7050106</c>
               <c>[5].6</c>
               <c>Varies</c>
               <c>BLOB</c>
               <c>BLOB Value</c>
                                                                           
    	   </texttable>

         <section title="Configurable Literals Description">
            <section title="User VAST" toc="exclude">                     
               <t>
                  
                  <list hangIndent="5" style="hanging">
                     <t hangText="DESCRIPTION"><vspace/>
                        The User VAST Literal is configured to specify a specific 
                        signed Vast (64-bit Integer).                                            
                     </t>
                     <t hangText="PARAMETERS"><vspace/>
                        The Literal accepts 1 parameters, as illustrated in 
                        <xref target="op_uservast_fig"/>.
                      
                        <figure align="center" anchor="op_uservast_fig" title="Operator User VAST Parameters">                        
                           <artwork align="center" xml:space="preserve">
+--------+
|  Value |
| [VAST] |
+--------+
                           </artwork>
                        </figure>
                        
                        Where:
                        <list>
                           <t>Value<vspace/>
                              The VAST being identified
                              by this Literal.
                           </t>
                        </list>                                             
                     </t>
                  </list>
               </t>
            </section>
                  
            <section title="User UVAST" toc="exclude">                     
               <t>
                  <list hangIndent="5" style="hanging">
                     <t hangText="DESCRIPTION"><vspace/>
                        The User VAST Literal is configured to specify a specific 
                        unsigned Vast (64-bit Integer).                                
                     </t>
                     <t hangText="PARAMETERS"><vspace/>
                        The Literal accepts 1 parameters, as illustrated in 
                        <xref target="op_useruvast_fig"/>.
                      
                        <figure align="center" anchor="op_useruvast_fig" title="Operator User UVAST Parameters">                        
                           <artwork align="center" xml:space="preserve">
+--------+
|  Value |
| [SDNV] |
+--------+
                           </artwork>
                        </figure>
                        
                        Where:
                        <list>
                           <t>Value<vspace/>
                              The UVAST, encoded as an SDNV, being identified
                              by this Literal.
                           </t>
                        </list>                                             
                     </t>
                  </list>
               </t>
            </section>
            
            <section title="User Float" toc="exclude">                     
               <t>
                  <list hangIndent="5" style="hanging">
                     <t hangText="DESCRIPTION"><vspace/>
                        The User Float Literal is configured to specify a specific 
                        32-bit, Single Precision Floating Point Value stored in
                        IEEE-754 format.                        
                     </t>
                     <t hangText="PARAMETERS"><vspace/>
                        The Literal accepts 1 parameters, as illustrated in 
                        <xref target="op_userfloat_fig"/>.
                      
                        <figure align="center" anchor="op_userfloat_fig" title="Operator User Float Parameters">                        
                           <artwork align="center" xml:space="preserve">
+--------+
| Value  |
| [BLOB] |
+--------+
                           </artwork>
                        </figure>
                        
                        Where:
                        <list>
                           <t>Value<vspace/>
                              The 32-bit floating point value in IEEE-754 format,
                              serialized in network byte order.     
                           </t>
                        </list>                                             
                     </t>
                  </list>
               </t>
            </section>
            
            
            <section title="User Double" toc="exclude">                     
               <t>
                  <list hangIndent="5" style="hanging">
                     <t hangText="DESCRIPTION"><vspace/>
                        The User Double Literal is configuredto specify a specific 
                        64-bit, Double Precision Floating Point Value stored in
                        IEEE-754 format.                        
                     </t>
                     <t hangText="PARAMETERS"><vspace/>
                        The Literal accepts 1 parameters, as illustrated in 
                        <xref target="op_userdouble_fig"/>.
                      
                        <figure align="center" anchor="op_userdouble_fig" title="Operator User Double Parameters">                        
                           <artwork align="center" xml:space="preserve">
+--------+
| Value  |
| [BLOB] |
+--------+
                           </artwork>
                        </figure>
                        
                        Where:
                        <list>
                           <t>Value<vspace/>
                              The 64-bit floating point value in IEEE-754 format,
                              serialized in network byte order.     
                           </t>
                        </list>                                             
                     </t>
                  </list>
               </t>
            </section>
            
            <section title="User String" toc="exclude">                     
               <t>
                  <list hangIndent="5" style="hanging">
                     <t hangText="DESCRIPTION"><vspace/>
                        The User String Literal is configured to specify a specific 
                        NULL-terminated character string.                        
                     </t>
                     <t hangText="PARAMETERS"><vspace/>
                        The Literal accepts 1 parameters, as illustrated in 
                        <xref target="op_userstr_fig"/>.
                      
                        <figure align="center" anchor="op_userstr_fig" title="Operator User String Parameters">                        
                           <artwork align="center" xml:space="preserve">
+-------+
| Value |
| [STR] |
+-------+
                           </artwork>
                        </figure>
                        
                        Where:
                        <list>
                           <t>Value<vspace/>
                              The NULL-terminated string represented by this
                              Literal.     
                           </t>
                        </list>                                             
                     </t>
                  </list>
               </t>
            </section>

            <section title="User BLOB" toc="exclude">                     
               <t>
                  <list hangIndent="5" style="hanging">
                     <t hangText="DESCRIPTION"><vspace/>
                        The User BLOB Literal is configured to specify a specific 
                        sized array of BYTES.                        
                     </t>
                     <t hangText="PARAMETERS"><vspace/>
                        The Literal accepts 1 parameters, as illustrated in 
                        <xref target="op_userblob_fig"/>.
                      
                        <figure align="center" anchor="op_userblob_fig" title="Operator User BLOB Parameters">                        
                           <artwork align="center" xml:space="preserve">
+--------+
| Value  |
| [BLOB] |
+--------+
                           </artwork>
                        </figure>
                        
                        Where:
                        <list>
                           <t>Value<vspace/>
                              The sized byte-array of the BLOB represented by
                              this Literal.     
                           </t>
                        </list>                                             
                     </t>
                  </list>
               </t>
            </section>
         </section>
                     
      </section>

      
      <section title="Macros">
         <t>
            Macro definitions are ordered collections of Controls that can
            be sequentially run. Each Control in a Macro MUST either be 
            a non-parameterized Control, or a parameterized Control with
            parameters specified. There
            is no capability to add parameters to a Control after it has been
            encapsulated in a Macro.
         </t> 
         <t>           
            The Controls that define a Macro item are represented by 
            a MID Collection (MC). 
         </t>
         <t>
            <figure>
               <artwork> 
+----------+------------+-------+-----------------------------+
|   Name   |    MID     |  OID  |        Description          |
+----------+------------+-------+-----------------------------+
|   User   | 0xC6060100 | [6].0 | List all user-defined data  |
|   List   |            |       |                             |
+----------+------------+-------+-----------------------------+
|                       Definition                            |
+-------------------------------------------------------------+ 
| 0x04 0x83040103 0x83040107 0x8304010C 0x83040110 0x83040114 |
+-------------------------------------------------------------+                            
               </artwork>
            </figure>
         </t>
         <texttable anchor="agent_macro" title="AMP Agent Macro Definitions" suppress-title="false" align="center" style="none">
            <ttcol></ttcol>
         </texttable>
               
      </section>         
               
		<section title="Operators">
			<t>
			   This section describes the set of Operators available to 
			   all AMP Agents. Applications and protocols in other ADMs do not need 
			   to redefine these operators, as they may be used in any expressions evaluated
			   by any Agent. 
			</t>
			
			<texttable anchor="agent_adm_op" title="AMP Agent Atomic Data" suppress-title="false" align="center" style="all">
           		<ttcol align="center">Name</ttcol>
               <ttcol align="center">MID</ttcol>
               <ttcol align="center">OID</ttcol>                  
               <ttcol align="center">Description</ttcol>
               <ttcol align="center"># Operands</ttcol>
           		
           		
           		<c>+</c>
           		<c>0x88070100</c>
           		<c>[7].0</c>
           		<c>Addition</c>
           		<c>2</c>

               <c>-</c>
               <c>0x88070101</c>
               <c>[7].1</c>
               <c>Subtraction</c>
               <c>2</c>
           		           		
               <c>*</c>
               <c>0x88070102</c>
               <c>[7].2</c>
               <c>Multiplication</c>
               <c>2</c>
           		
           		<c>/</c>
           		<c>0x88070103</c>
           		<c>[7].3</c>
           		<c>Division</c>
           		<c>2</c>
           		
           		<c>%</c>
           		<c>0x88070104</c>
           		<c>[7].4</c>
           		<c>Modulo</c>
           		<c>2</c>
           		         
           		<c>^</c>
               <c>0x88070105</c>
               <c>[7].5</c>
           		<c>Exponentiation</c>
           		<c>2</c>
           		  		
           		<c>&amp;</c>
               <c>0x88070106</c>
               <c>[7].6</c>
           		<c>Bitwise AND</c>
           		<c>2</c>
           		
           		<c>|</c>
               <c>0x88070107</c>
               <c>[7].7</c>
           		<c>Bitwise OR</c>
           		<c>2</c>
           		
           		<c>#</c>
               <c>0x88070108</c>
               <c>[7].8</c>
           		<c>Bitwise XOR</c>
           		<c>2</c>
           		
           		<c>~</c>
               <c>0x88070109</c>
               <c>[7].9</c>
           		<c>Bitwise NOT</c>
           		<c>1</c>
           		
           		<c>&amp;&amp;</c>
               <c>0x8807010A</c>
               <c>[7].A</c>
           		<c>Logical AND</c>
           		<c>2</c>
           		
           		<c>||</c>
               <c>0x8807010B</c>
               <c>[7].B</c>
           		<c>Logical OR</c>
           		<c>2</c>
           		
           		<c>!</c>
               <c>0x8807010C</c>
               <c>[7].C</c>
           		<c>Logical NOT</c>
           		<c>1</c>
           		
           		<c>abs</c>
               <c>0x8807010D</c>
               <c>[7].D</c>
           		<c>Absolute Value</c>
           		<c>1</c>
           		
           		<c>&lt;</c>
               <c>0x8807010E</c>
               <c>[7].E</c>
           		<c>Less than</c>
           		<c>2</c>
           		
           		<c>&gt;</c>
               <c>0x8807010F</c>
               <c>[7].F</c>
           		<c>Greater than</c>
           		<c>2</c>
           		
           		<c>&lt;=</c>
               <c>0x88070110</c>
               <c>[7].10</c>
           		<c>Less than or equal to</c>
           		<c>2</c>
           		
           		<c>&gt;=</c>
               <c>0x88070111</c>
               <c>[7].11</c>
           		<c>Greater than or equal to</c>
           		<c>2</c>
           		
           		<c>!=</c>
               <c>0x88070112</c>
               <c>[7].12</c>
           		<c>Not equal</c>
           		<c>2</c>
           		
           		<c>==</c>
               <c>0x88070113</c>
               <c>[7].13</c>
           		<c>Equal to</c>
           		<c>2</c>

               <c>&lt;&lt;</c>
               <c>0x88070114</c>
               <c>[7].14</c>
               <c>Bitwise Left Shift</c>
               <c>2</c>
               
               <c>&gt;&gt;</c>
               <c>0x88070115</c>
               <c>[7].15</c>
               <c>Bitwise Right Shift</c>
               <c>2</c>
           		
               <c>STOR</c>
               <c>0x88070116</c>
               <c>[7].16</c>
               <c>Store value of Parm 2 in Parm 1</c>
               <c>2</c>
                              
                          		          		
           	</texttable>
		</section>
		
      <section title="Examples">
         <t> 
            This section describes several examples of working with MIDs within the AMP
            using examples from this ADM.
         </t>
         
         <section title="Parameterizing a Control">
            <t>
            	This section uses the example of the "Add Variable Definition" Control, which takes
               three parameters and can be summarized by the following pseudo-code notation:
               <vspace blankLines="1"/>
               AddVar(MID new_id, EXPR init, BYTE type)
               <vspace blankLines="1"/>
               Where "new_id" is the MID of the newly created Variable 
               definition, "init" is the Expression that is used to compute the 
               initial value, and "type" is the enumeration of the resultant type of 
               the Variable. 
            </t>
            <t>
              An example set of parameters for this Control are as follows.	
            </t>
            <texttable align="center" style="all">
               <ttcol align="center">Parameter</ttcol>
               <ttcol align="center">Type</ttcol>
               <ttcol align="center">Value</ttcol>                  
               <ttcol align="center">Description</ttcol>
                   
               <c>new_id</c>
               <c>MID</c>
               <c>0x9101040102</c>
               <c>A compressed-OID MID with an issuer field - all user-defined MIDs in the
               	  AMP are required to have an issuer field. 
               	</c>
                              
               <c>def</c>
               <c>EXPR</c>
               <c>0x03 0x80010102 0x80010104 0x88070100</c>
               <c>The expression (# TRL) + (# SRL) in postfix.</c>
               
               <c>type</c>
               <c>BYTE</c>
               <c>0x0B</c>
               <c>UINT</c>               
            </texttable>
            
            <t>
               Given these parameters, the Control to add this particular Variable to
               a receiving Agent is as follows.
               <figure align="center" anchor="parm_oid_fmt" title="Parameterized OID Format" suppress-title="false" alt="" width="" height="">
                  <preamble>AddVar Control Parameterization Example</preamble>
                  <artwork align="center" xml:space="preserve" name="" type="" alt="" width="" height="">
+--------+--------+--------+--------+
| Flags  | Issuer |   OID  |  Tag   |
| [BYTE] | [SDNV] |[VARIED]| [SDNV] | &lt;=== MID 
|        | (opt)  |        | (opt)  |      Definition
+--------+--------+--------+--------+
                      ||
 ____________________/  \________________                                                                                     
/                                        \
 +----------+--------------+------------+
 | Nickname | Relative OID | Parameters |  &lt;=== Compressed, 
 |  [SDNV]  |   [BLOB]     |    [TDC]   |       Parameterized OID
 +----------+--------------+------------+       Definition
                                 ||
        ________________________/  \_________                                                                                     
       /                                     \
        +----------+--------+     +--------+
        | # Params | Parm 1 |     | Parm N |  &lt;=== Parameter DC 
        |  [SDNV]  | [BLOB] | ... | [BLOB] |       Definition
        +----------+--------+     +--------+        
                                      ||           
                   __________________/  \______________                                                                                     
                  /                                    \                                            
                   +--------+---------+     +---------+
   Single    ===&gt;  | Length | Octet 1 | ... | Octet N |
   Parameter       | [SDNV] | [BYTE]  |     |  [BYTE] | 
                   +--------+---------+     +---------+        
                  </artwork>
               </figure>
               
               Given this format, the overall MID for the AddVar Control is 
               as follows.
               <figure><artwork><![CDATA[  

 MID    Nick-                 
 Flag   Name     OID BLOB            Parameters
+-----+------+-------------+------------------------------+
|     |      | Len  Octets |                              |
|     |      +----+--------+ 04031416090591010401020D0380 |    |                  
| C3  |  04  | 01 |   02   |   0101028001010488070100010B |
+-----+------+-------------+------------------------------+                                        
]]></artwork></figure>
               
               The Parameters TDC can be further broken out as follows.   

               <figure><artwork><![CDATA[  

 (3 Parms)  (MID,EXPR,BYTE)      (MID ID) 
               
  # BLOBS      Type Blob      Parm 1 BLOB     
+----------+----------------+-----------------+
|   SDNV   |   Len  Octets  | Len    Octets   |
|----------+-----+----------+----+------------+ ...                  
|    04    |  03 |  141609  | 05 | 9101040102 |
+----------+-----+----------+----+------------+                                        
 
               	
        (EXPR Initializer)         (BYTE Type)
                                           
        Parm 2 BLOB                Parm 3 BLOB               	
+-----------------------------------------------+               	
| Len            Octets           | Len  Octets |               
+----+----------------------------+-----+-------+
| 0D | 03800101028001010488070100 |  01 |   0B  |
+---------------------------------+-----+-------+                               
                             
               
]]></artwork></figure>

            </t>
            
         </section>         
      </section>
		
				    
    <section anchor="IANA" title="IANA Considerations" toc="default">
      <t>
		At this time, this protocol has no fields registered by IANA.
	  </t>
	  <t>
	  	This ADM does define a root OID which will require a formal allocation.
	  </t>
	  <t>
	  	This ADM does define a series of nicknames which also will require a formal allocation.
	  </t>
    </section>
  </middle>

   <!--  *****BACK MATTER ***** -->
   <back>
      <references title="Informative References">
               
         <reference anchor="AMA">
            <front>
               <title>Asynchronous Management Architecture</title>
               <author initials="E." surname="Birrane" fullname="E. Birrane">
                  <organization />
               </author>
               <date year="2015" month="August" />
               <abstract>
                  <t></t>
               </abstract>
            </front>  
            <seriesInfo name="Internet-Draft" value="draft-birrane-dtn-ama-00" />                
         </reference>
               
         <?rfc include="reference.I-D.draft-irtf-dtnrg-dtnmp-01"?>
                    
      </references>
      
      <references title="Normative References">
         &RFC2119;     

         <reference anchor="AMP">
            <front>
               <title>Asynchronous Management Protocol</title>
               <author initials="E." surname="Birrane" fullname="E. Birrane">
                  <organization />
               </author>
               <date year="2015" month="August" />
               <abstract>
                  <t></t>
               </abstract>
            </front>  
            <seriesInfo name="Internet-Draft" value="draft-birrane-dtn-amp-00" />                
         </reference>
         
         
      </references>
    
  </back>
</rfc>