[Docs] [txt|pdf] [Tracker] [Email] [Diff1] [Diff2] [Nits]

Versions: 00 01

Network Working Group                                Sandeep Adwankar
Internet-Draft                                         Motorola, Inc.
Expires: January 19, 2005                                July 19 2004





                           NetConf Data Model
                draft-adwankar-netconf-datamodel-01.txt

Status of this Memo


   By submitting this Internet-Draft, I certify that any applicable
   patent or other IPR claims of which I am aware have been disclosed,
   or will be disclosed, and any of which I become aware will be
   disclosed, in accordance with RFC 3668.

   "Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as
   Internet-Drafts.

   Internet-Drafts are draft documents valid for a maximum of six
   months and may be updated, replaced, or obsoleted by other documents
   at any time.  It is inappropriate to use Internet-Drafts as
   reference material or to cite them other than a "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/1id-abstracts.html

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html"


Abstract


   The NetConf protocol needs a way to represent the managed data
   on a device. This document provides a data model representation
   that addresses managed object definition, ACL, naming and compliance
   mechanism. It provides concrete realizations of system and
   interfaces managed objects.













   Adwankar              Expires January 19, 2005              [Page 1]


   Internet Draft          NetConf Data Model              July 19, 2004






Table of Contents


   1.    Introduction . . . . . . . . . . . . . . . . . . . . . . .  3
   2.    The NetConf Managed Object Representation  . . . . . . . .  3
   3.    The NetConf Data Model Features. . . . . . . . . . . . . .  6
   4.    Protocol Examples    . . . . . . . . . . . . . . . . . . . 11
   5.    References . . . . . .  . . . . . . . . . . . . . . . . .  12


   Appendix A. Data Model Survey . . . . . . . . . . . . . . . . . . 14
   Appendix B. NetConf Data Model Schema . . . . . . . . . . . . . . 24
   Appendix C. System Schema . . . . . . . . . . . . . . . . . . . . 30
   Appendix D. Interfaces Schema . . . . . . . . . . . . . . . . . . 38






































   Adwankar              Expires January 19, 2005              [Page 2]


   Internet Draft          NetConf Data Model              July 19, 2004




1. Introduction

   The NetConf protocol [1] provides RPC-based mechanism for management
   operations using XML encoding. This document defines NetConf data
   model schema that is common across all NetConf implementations and
   provide constructs to represent managed objects. Each managed
   object definition must extend and use the NetConf data model schema.
   The NetConf data model schema is based on the XML Schema
   specification.

   Appendix A provides a brief survey of data models of few management
   protocols. Based on the survey, it can be concluded that
   the NetConf Data Model should provide a representation standard for
   defining XML documents that describe managed data on a device. Such
   a representation mechanism should support strong type as well as
   constraints checking. It should allow use of regular expressions to
   set constraints. It should support reusable types and should
   allow one to create new types using inheritance. It should allow
   grouping elements to control the recurrence of managed data
   elements. The data model should allow support for partitioning
   managed data into multiple spaces, and should able to reference
   those. It should able to specify content as being unique within a
   region. It should define types that can represent complex managed
   objects and its hierarchies. It should define constructs for
   describing access control associated with each managed object.
   It should allow referencing of complex managed objects. It should
   allow easy translation from NetConf representation of managed
   objects to any other standard or proprietary XML form. It should
   specify naming mechanism so that a managed object or collection of
   managed objects can be addressed. NetConf Data Model should allow
   easy migration from exising management system.

   The XML Schema [9] [10] [11] provides sufficient set of constructs
   that satisfies the requirements stated above.


2  The NetConf Managed Object Representation

   The managed object tree provides a hierarchical tree structure to
   organize all available management objects in the device. Each
   managed object is represented by a node or collection of nodes.
   The NetConf Data Model Schema is provided in Appendix B.
   The managed object tree is represented as XML schema element as
   given below.

   <element name="MOTree">
    <complexType>
     <sequence>
       <element name="Identity" type="nc:IdentityType"/>
       <element ref="nc:Node" minOccurs="0" maxOccurs="unbounded"/>
      </sequence>
    </complexType>


   Adwankar              Expires January 19, 2005              [Page 3]


   Internet Draft          NetConf Data Model              July 19, 2004

   </element>

   The model Identity provides identity information such as last
   update, version number, organization, contact, description and
   revision history. The contact and revision information can occur
   multiple times in a model identity. A model identity element must
   appear only once in a managed object tree and must provide name and
   path of the root. All the nodes in the managed object tree must be
   addressed from the name or the path specified in the model identity.

   The MOTree is composed of one to unbounded number of node elements.
   Each node is represented by a recursive Node type that allows zero
   to unbounded number of nodes as its children. Each node specifies
   name, path, access control list, title, last update information,
   version number, parent, maxAccess, status and description as shown
   below.

    <complexType name="NodeType">
     <sequence>
      <element name="Name" type="string" minOccurs="0"/>
      <element name="Path" type="anyURI" minOccurs="0"/>
      <element name="ACL" type="nc:ACLType" minOccurs="0"/>
      <element name="Title" type="nc:DisplayString" minOccurs="0"/>
      <element name="LastUpdated" type="dateTime" minOccurs="0"/>
      <element name="VerNo" type="unsignedShort" minOccurs="0"/>
      <element name="parent" type="nc:ParentName" minOccurs="0"/>
      <element name="maxAccess" type="nc:AccessType" minOccurs="0"/>
      <element name="status" type="nc:Status" minOccurs="0"/>
      <element name="description" type="nc:Description" minOccurs="0"/>
      <element name="Node" type="nc:NodeType" minOccurs="0"
               maxOccurs="unbounded"/>
     </sequence>
    </complexType>

   A managed object must extend a NodeType to define a node. The
   non-container managed objects must contain an attribute "value".
   The managed object definition must define exact type of this
   attribute. This allows type and constraints checking of the
   managed object value. The extension of NodeType also allows
   specifying parent name, maximum access allowed on the managed
   object, status of the object and its description.

   Appendix C provides XML Schema representation of "Systems" managed
   objects [12] and appendix D provides XML Schema representation of
   "Interfaces" managed objects [13].

   The managed object element "sysDescr" representation is reproduced
   below from Appendix C.

   <element name="sysDescr" >
    <complexType>
     <complexContent>
      <extension base="nc:NodeType">
       <sequence>
        <element name="parent" type="nc:ParentName" fixed="system"


   Adwankar              Expires January 19, 2005              [Page 4]


   Internet Draft          NetConf Data Model              July 19, 2004

                 minOccurs="0"/>
        <element name="maxAccess" type="nc:ReadAccess" minOccurs="0"/>
        <element name="status" type="nc:Status" fixed="current"
                 minOccurs="0"/>
        <element name="description" type="nc:Description" fixed="A
                 textual description of the entity.  This value should
                 include the full name and version identification of
                 the system's hardware type, software operating-system,
                 and networking software." minOccurs="0"/>
       </sequence>
       <attribute name="value" type="nc:DisplayString" use="required"/>
      </extension>
     </complexContent>
    </complexType>
   </element>

   The "sysDescr" managed object element extends NodeType defined in
   the "nc" namespace. This managed object must contain a value of type
   "DisplayString" defined in the "nc" namespace and is shown below.

    <simpleType name="DisplayString">
     <restriction base="string">
      <maxLength value="255" />
     </restriction>
    </simpleType>

   The managed object value cannot exceed 255 characters in length.
   The managed object's parent is fixed as "system". The ParentName
   type as shown below does not allow empty or whitespace-only parent
   name.

    <simpleType name="ParentName">
     <restriction base="token">
      <minLength value="1" />
     </restriction>
    </simpleType>

   The "sysDescr" maximum access is limited to ReadAccess, which is
   defined as set of five netconf protocol commands as shown below.

   <complexType name="ReadAccess">
    <sequence>
     <element ref="nc:get-config"/>
     <element ref="nc:get"/>
     <element ref="nc:lock"/>
     <element ref="nc:unlock"/>
     <element ref="nc:validate"/>
    </sequence>
   </complexType>

   The status of the "sysDescr" definition is current where status is
   defined as simple type with enumerated values of "current",
   "deprecated" or "obsolete" as shown below.

    <simpleType name="Status">


   Adwankar              Expires January 19, 2005              [Page 5]


   Internet Draft          NetConf Data Model              July 19, 2004

     <restriction base="string">
      <enumeration value="current" />
      <enumeration value="deprecated" />
      <enumeration value="obsolete" />
     </restriction>
    </simpleType>

   The description of the "sysDescr" managed object is of type
   Description defined as below.

    <simpleType name="Description">
     <restriction base="string">
      <maxLength value="2048" />
     </restriction>
    </simpleType>


3. The NetConf Data Model Features

  Addressing

   The NetConf agent must support relative URI [14] based addressing.
   e.g.
   ./system/sysName
   ./ifTable

   The NetConf agent should support XPath [15] to locate managed
   objects, select a set of managed objects based on a set of
   criteria's, select content that is combination of different managed
   object values and to create simple expressions of managed objects.

   XPath expression given below provides value of the administratively
   assigned name for the managed node.
   //sys:sysName/@sys:value

   XPath expression given below provides value of managed object
   ifInOctets that gives the total number of octets received on the
   first interface of the device
   /if:ifTable/if:ifEntry[if:ifIndex/@if:value='1']/if:ifInOctets
   /@if:value

   XPath expression given below selects all interface entries having
   MTU greater than 500.
   //if:ifEntry[if:ifMtu/@if:value>'500']

   XPath expresssion given below selects all interface entries that
   have either "Ethernet" in their description or IANA assigned type
   as ethernetCsmacd(6).
   //if:ifEntry[contains(if:ifDescr/@if:value,'Ethernet')] |
   //if:ifEntry[if:ifType/@if:value>='6']

   XPath expression given below lists descriptions of all interfaces
   whose both admin and operational status is up and more than 1000
   errors packets (or transmission units).
   //if:ifEntry[(if:ifAdminStatus/@if:value='1') and


   Adwankar              Expires January 19, 2005              [Page 6]


   Internet Draft          NetConf Data Model              July 19, 2004

                (if:ifOperStatus/@if:value='1') and
                (if:ifInErrors/@if:value>'1000')]/if:ifDescr/@if:value

   XPath expression given below provides number of interfaces where
   error packet count is more than 1000.
   count(//if:ifTable/if:ifEntry[if:ifInErrors/@if:value>='1000'])

   Utilization expression such as
   (ifInOctets + ifOutOctets) * 800 / ifSpeed can be expressed in XPath
   as
   (//if:ifEntry/if:ifInOctets/@if:value +
    //if:ifEntry/if:ifOutOctets/@if:value)*800 div
   (//if:ifEntry/if:ifSpeed/@if:value )


  ACL

   ACL is defined as a unbounded list of ACL entries and a boolean flag
   of acl inheritance. If this flag is true then ACL entries of parent
   are inherited and combined with ACL entries defined for the managed
   object.

   Each ACL entry contains
   --  access list which is a list of NetConf protocol operations that
   can be performed on the managed object.
   -- identifier list which groups accessors together. Accessor is a
   identifying an entity to whom access privileges have been granted.
   -- accessDuration is an optional element that provides a time
   interval over which an ACL entry is valid.

   <complexType name="ACLType">
    <sequence>
     <element name="ACLEntry" type="nc:ACLEntryType" minOccurs="0"
              maxOccurs="unbounded"/>
     <element name="inherit" type="boolean" default="true"
              minOccurs="0" />
    </sequence>
   </complexType>
   <complexType name="ACLEntryType">
    <sequence>
     <element name="access" type="nc:AccessType"/>
     <element name="Identifier" type="nc:IdentifierType"/>
     <element name="accessDuration" type="duration" minOccurs="0"/>
    </sequence>
   </complexType>
   <complexType name="IdentifierType">
    <sequence>
     <element name="accessor" type="string" default="*"
               minOccurs="0" maxOccurs="unbounded" />
    </sequence>
   </complexType>


   Example of ACL with get access provided to everyone.



   Adwankar              Expires January 19, 2005              [Page 7]


   Internet Draft          NetConf Data Model              July 19, 2004

   <nc:ACL>
    <nc:ACLEntry>
     <nc:access>
      <nc:Read>
       <nc:get-config/>
       <nc:get/>
       <nc:lock/>
       <nc:unlock/>
       <nc:validate/>
      </nc:Read>
     </nc:access>
     <nc:Identifier>
      <nc:accessor>
        *
      </nc:accessor>
     </nc:Identifier>
    </nc:ACLEntry>
   </nc:ACL>

   Example of inherited ACL of sysDescr managed object
   <sys:sysDescr sys:value="ExampleDevice Name OS Version">
    <nc:Name>SystemDescription</nc:Name>
    <nc:Path>/netconf/system/sysDescr</nc:Path>
    <nc:ACL>
     <nc:inherit>true</nc:inherit>
    </nc:ACL>
    <nc:Title>System Description</nc:Title>
    <nc:LastUpdated>2004-07-12T09:30:47-05:00</nc:LastUpdated>
    <nc:VerNo>1</nc:VerNo>
    <sys:parent>system</sys:parent>
    <sys:maxAccess>
     <nc:get-config />
     <nc:get />
     <nc:lock />
     <nc:unlock />
     <nc:validate />
    </sys:maxAccess>
    <sys:status>current</sys:status>
   </sys:sysDescr>


    Example of ACL with get access provided to everyone
    and replace operation to manager http://example.com/manager

    <sys:sysContact sys:value="ExampleContact Information">
     <nc:Name>SystemContact</nc:Name>
     <nc:Path>/netconf/system/sysContact</nc:Path>
     <nc:ACL>
      <nc:ACLEntry>
       <nc:access>
        <nc:Read>
         <nc:get-config/>
         <nc:get/>
         <nc:lock/>
         <nc:unlock/>


   Adwankar              Expires January 19, 2005              [Page 8]


   Internet Draft          NetConf Data Model              July 19, 2004

         <nc:validate/>
        </nc:Read>
       </nc:access>
       <nc:Identifier>
        <nc:accessor>*</nc:accessor>
       </nc:Identifier>
      </nc:ACLEntry>
      <nc:ACLEntry>
       <nc:access>
        <nc:Write>
         <nc:get-config/>
         <nc:edit-config-merge/>
         <nc:edit-config-replace/>
         <nc:copy-config/>
         <nc:get/>
         <nc:lock/>
         <nc:unlock/>
         <nc:validate/>
         <nc:commit/>
         <nc:discard-changes/>
        </nc:Write>
       </nc:access>
       <nc:Identifier>
        <nc:accessor>
         http://example.com/manager
        </nc:accessor>
       </nc:Identifier>
       <nc:accessDuration>P1Y</nc:accessDuration>
      </nc:ACLEntry>
     <nc:inherit>true</nc:inherit>
    </nc:ACL>
    <nc:Title>System Contact</nc:Title>
    <nc:LastUpdated>2004-07-12T09:30:47-05:00</nc:LastUpdated>
    <nc:VerNo>1</nc:VerNo>
    <sys:parent>system</sys:parent>
    <sys:maxAccess>
     <nc:get-config />
     <nc:edit-config-merge />
     <nc:edit-config-replace />
     <nc:copy-config />
     <nc:get />
     <nc:lock />
     <nc:unlock />
     <nc:validate />
     <nc:commit />
     <nc:discard-changes />
    </sys:maxAccess>
    <sys:status>current</sys:status>
   </sys:sysContact>


  Managed Object Grouping

   The XML Schema group construct must be used to define groups of
   managed objects. The sysGroup below is grouping of systems managed


   Adwankar              Expires January 19, 2005              [Page 9]


   Internet Draft          NetConf Data Model              July 19, 2004

   objects

   <group name="sysGroup">
    <sequence>
     <element ref="sys:sysDescr"/>
     <element ref="sys:sysObjectID"/>
     <element ref="sys:sysUpTime"/>
     <element ref="sys:sysContact"/>
     <element ref="sys:sysName"/>
     <element ref="sys:sysLocation"/>
     <element ref="sys:sysServices"/>
     <element ref="sys:sysORLastChange"/>
     <element ref="sys:sysORTable"/>
     <element ref="sys:sysOREntry"/>
     <element ref="sys:sysORIndex"/>
     <element ref="sys:sysORID"/>
     <element ref="sys:sysORDescr"/>
     <element ref="sys:sysORUpTime"/>
    </sequence>
   </group>

  Compliance

   The named model group must be referenced in a complex type that
   defines whether the group is mandatory and provides description.
   The systemGroup type given below defines a mandatory to implement
   collection of managed objects.

   <complexType name="systemGroup">
    <sequence>
     <group ref="sys:sysGroup"/>
      <element name="mandatory" type="boolean" fixed="true"/>
      <element name="description" type="nc:Description"
               fixed="The system group defines objects which
                      are common to all managed systems."/>
    </sequence>
   </complexType>

   The schema compliance element must be defined that should include
   element corresponding to each named model group. The
   schemaCompliance element given below provides compliance statement
   of systems managed objects.

   <element name="schemaCompliance">
    <complexType>
     <complexContent>
      <extension base="nc:Compliance">
       <sequence>
        <element name="complianceGroup" type="sys:systemGroup"/>
        <element name="status" type="nc:Status" fixed="current"/>
        <element name="description" type="nc:Description"
                 fixed="The compliance statement."/>
       </sequence>
      </extension>
     </complexContent>


   Adwankar              Expires January 19, 2005              [Page 10]


   Internet Draft          NetConf Data Model              July 19, 2004

    </complexType>
   </element>


  Key Constraints

   The NetConf data model element must define key constraints to
   enforce uniqueness and to require that certain managed objects
   must be present. The sysORKey defined below is part of sysORTable
   in systems schema and it enforces that sysORIndex value is unique
   and must be present.

   <key name="sysORKey">
        <selector xpath="./sys:sysOREntry/sys:sysORIndex"/>
        <field xpath="@sys:value"/>
   </key>


4.  Protocol Examples

    NetConf Request:

    <nc:rpc xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="urn:ietf:params:xml:ns:netconf:base:1.0
            protocol.xsd" nc:message-id="101">
    <nc:get>
      <nc:sourceURI>
                //if:ifTable/if:ifEntry[if:ifIndex/@if:value='1']
       </nc:sourceURI>
     </nc:get>
    </nc:rpc>

    NetConf Reply:
    <nc:rpc-reply xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="urn:ietf:params:xml:ns:netconf:base:1.0
        protocol.xsd" nc:message-id="101">
    <nc:data>
     <ifEntry
        xmlns="urn:ietf:params:xml:ns:netconf:data:interfaces:1.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="urn:ietf:params:xml:ns:netconf:base:1.0
        if.xsd">
        <ifIndex value="1"/>
        <ifDescr value="Ethernet0"/>
        <ifType value="6"/>
        <ifMtu value="1500"/>
        <ifSpeed value="10000000"/>
        <ifPhysAddress value="00e0f71a1ca1"/>
        <ifAdminStatus value="1"/>
        <ifOperStatus value="1"/>
        <ifLastChange value="P1DT2H"/>
        <ifInOctets value="127077451"/>
        <ifInUcastPkts value="463123"/>


   Adwankar              Expires January 19, 2005              [Page 11]


   Internet Draft          NetConf Data Model              July 19, 2004

        <ifInDiscards value="0"/>
        <ifInErrors value="0"/>
        <ifInUnknownProtos value="91"/>
        <ifOutOctets value="42367812"/>
        <ifOutUcastPkts value="312034"/>
        <ifOutDiscards value="0"/>
        <ifOutErrors value="0"/>
      </ifEntry>
     </nc:data>
    </nc:rpc-reply>


    NetConf Request:
    <nc:rpc xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="urn:ietf:params:xml:ns:netconf:base:1.0
            protocol.xsd" nc:message-id="101">
     <nc:get>
      <nc:sourceURI>
        //sys:system[sys:sysName/@sys:value="MyName"]
      </nc:sourceURI>
     </nc:get>
    </nc:rpc>


    NetConf Reply:
    <nc:rpc-reply
        xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="urn:ietf:params:xml:ns:netconf:base:1.0
                            system.xsd"
        nc:message-id="101">
      <nc:data>
        <sys:system
          xmlns:sys="urn:ietf:params:xml:ns:netconf:data:system:1.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="urn:ietf:params:xml:ns:netconf:base:1.0
          system.xsd">
          <sys:sysDescr sys:value="MyMachine" />
          <sys:sysObjectID sys:value="123" />
          <sys:sysUpTime sys:value="P1DT2H"/>
          <sys:sysContact sys:value="Example Name"/>
          <sys:sysName sys:value="MyName"/>
          <sys:sysLocation sys:value="MyOffice"/>
          <sys:sysServices sys:value="3"/>
          <sys:sysORTable/>
        </sys:system>
      </nc:data>
    </nc:rpc-reply>




References



   Adwankar              Expires January 19, 2005              [Page 12]


   Internet Draft          NetConf Data Model              July 19, 2004

[1]  Enns, R., "NETCONF Configuration Protocol",
     draft-ietf-netconf-prot-03 (work in progress), June 2004.

[2]  McCloghrie, K., Perkins, D. and J. Schoenwaelder,
     "Structure of Management Information Version 2 (SMIv2)",
     STD 58, RFC 2578, April 1999.

[3]  McCloghrie, K., Perkins, D. and J. Schoenwaelder, "Textual
     Conventions for SMIv2", STD 59, RFC 2579, April 1999.

[4]  McCloghrie, K., Perkins, D. and J. Schoenwaelder,
     "Conformance Statements for SMIv2", STD 60, RFC 2580, April 1999.

[5]  McCloghrie, K., Fine, M., Seligson, J., Chan, K., Hahn,
     S., Sahita, R., Smith, A. and F. Reichmeyer, "Structure of
     Policy Provisioning Information (SPPI)", RFC 3159, August 2001.

[6]  Distributed Management Task Force standards (DMTF)
     http://www.dmtf.org/standards

[7]  The SyncML Device Management Tree and Description Version 1.1.2
     Open Mobile Alliance Ltd. December 2003

[8]  OASIS Web Services Distributed Management (WSDM)
     http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsdm

[9]  Fallside, D., "XML Schema Part 0: Primer", W3C Recommendation
     May 2001

[10] Thompson, H., Beech, D., Maloney, M. and N. Mendelsohn, "XML
     Schema Part 1: Structures", W3C Recommendation May 2001

[11] Biron, P., Malhotra, A., "XML Schema Part 2: Datatypes",
     W3C Recommendation May 2001

[12] Presuhn, R., J. Case, K. McCloghrie, M. Rose, and S. Waldbusser,
     "Management Information Base (MIB) for the Simple Network
     Management Protocol (SNMP)", STD 62, RFC 3418, December 2002.

[13] McCloghrie, K. and F. Kastenholz, "The Interfaces Group MIB",
     RFC 2863, June 2000.

[14]  Berners-Lee, T., Fielding, R. and L. Masinter, "Uniform Resource
     Identifiers (URI): Generic Syntax", RFC 2396, August 1998.

[15] "XML Path Language (XPath) Version 1.0", J. Clark and S.
     DeRose.  W3C Recommendation, November 1999.










   Adwankar              Expires January 19, 2005              [Page 13]


   Internet Draft          NetConf Data Model              July 19, 2004

Author's Address

   Sandeep Adwankar
   Motorola
   1301 East Algonquin Rd,
   MS IL02-2240, Schaumburg,
   IL 60196 USA
   EMail: sandeep.adwankar@motorola.com




Appendix A. Data Model Survey

   Structure of Management Information (SMI)
   The Structure of Management Information (version 2 is the current
   version), [2] [3] [4] is a specification for creating a management
   information base (MIB). The SMI identifies the permissible data
   types and spells out the rules for naming and identifying MIB
   components. It defines the structure of the SNMP naming mechanism.
   The SNMP SMI uses a subset of Abstract Syntax Notation One (ASN.1)
   and can represent simple data types such as scalars and
   two-dimensional arrays of scalars.

   Encoding
   Objects in the MIB are encoded using the basic encoding rules (BER)
   associated with ASN.1. A typical BER encoding is based on the use
   of a type-length-value structure.

   Addressing
   All managed objects are arranged in hierarchical or tree structure
   and associated with each type of object is a unique identifier of
   type OBJECT IDENTIFIER (OID). E.g. OID of internet node is defined
   as internet OBJECT IDENTIFIER ::={iso(1) org(3) dod(6) 1}

   MACRO
   SMI defines ASN.1 MACRO definitions that allows describing container
   for managed objects, object definitions and notification
   definitions.

   Module Identity
   Object Definitions: Each object is defined using an OBJECT-TYPE an
   ASN.1 MACRO shown in syntax that specifies the data type of the
   object, its allowable forms and value ranges and its relationship
   with other objects within MIB.  SMI also defines new macros for
   defining object groups, traps, compliance  characteristics and
   capability characteristics

   SMI defines application wide scaler types such as IpAddress,
   Counter32, Gauge32, Unsigned32, TimeTicks, Opaque, Counter64.
   It defines BIT construct, which represents an enumeration of named
   bits. SMI allows definition of a tabular structure on an ordered
   collection of objects within the MIB using SEQUENCE OF <EntryType>.
   <EntryType> refers to the SEQUENCE type of its subordinate
   conceptual row.


   Adwankar              Expires January 19, 2005              [Page 14]


   Internet Draft          NetConf Data Model              July 19, 2004


   Textual Conventions
   The TEXTUAL-CONVENTION macro allows defining new types that are
   available to all MIB modules. They provide precise semantics and
   convenience for human-readability.

   Type              Representation
   DisplayString     Textual information
   PhysAddress       Media- or physical-level addresses
   MacAddress        802 MAC address
   TruthValue        Boolean Value
   TestAndIncr       Integer-valued information used for atomic
                     operations value supplied via the management
                     protocol is tested before incrementing by one
   AutonomousType    Extensible type identification
   InstancePointer   Pointer to either a specific instance of a MIB
                     object or a conceptual row of a MIB table
   VariablePointer   A pointer to a specific object instance
   RowPointer        A pointer to a conceptual row
   RowStatus         Status of a conceptual row
                     e.g. active, notInService, createAndGo, destroy
   TimeStamp         Time since a specific occurrence happened.
   TimeInterval      Period of time
   DateAndTime       A date-time specification
   StorageType       memory realization of a conceptual row
                     e.g. volatile, nonVolatile, permanent, readOnly
   TDomain           kind of transport service
   TAddress          Transport service address

   Compliance
   The MODULE-COMPLIANCE macro is used to convey a minimum set of
   requirements with respect to implementation of one or more MIB
   modules. It uses OBJECT-GROUP macro that defines a collection of
   related managed objects.

   Agent Capabilities
   The Agent Capabilities macro allows defining set of capabilities
   present in an agent. The example below shows that the SNMP Agent
   supports SNMPv2 MIB and implements MIB groups identified in the
   INCLUDES clause.

   snmpAgent AGENT-CAPABILITIES
       PRODUCT-RELEASE      "SNMP Agent V2.4"
       STATUS               current
       DESCRIPTION          "SNMP Agent"

       SUPPORTS             SNMPv2-MIB
           INCLUDES         { systemGroup, snmpGroup, snmpSetGroup,
                              snmpBasicNotificationsGroup }
   Notification
   Notification Macro is used to define the information contained
   within an unsolicited transmission of management information. The
   OBJECTS clause in Notification Macro defines an ordered sequence
   of MIB object types. Every instance of the notification should
   contain only one object instance for each occurrence of each object


   Adwankar              Expires January 19, 2005              [Page 15]


   Internet Draft          NetConf Data Model              July 19, 2004

   type in the specified order.

   An example of System group that provides general information about
   the managed system is shown below

   system   OBJECT IDENTIFIER ::= { mib-2 1 }

   sysDescr OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..255))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "A textual description of the entity.  This value should
            include the full name and version identification of the
            system's hardware type, software operating-system, and
            networking software."
    ::= { system 1 }



   2  Structure of Policy Provisioning Information (SPPI)

   The Structure of Policy Provisioning Information (SPPI) [5] defines
   the adapted subset of Structure of Management Information (SMI) used
   to specify policy information. The policy information can be
   exchanged from policy servers (Policy Decision Point or PDP) to
   network devices (Policy Enforcement Points or PEPs) using Common
   Open Policy Service protocol for policy provisioning (COPS-PR). The
   SPPI is used to write Policy Information Base (PIB) modules.

   The SPPI uses the term Provisioning Class (PRC) for the managed
   object table and row definitions, and Provisioning Instance (PRI)
   for an instantiation of a row definition. For a columnar object of a
   table definition, the SPPI uses the term "attribute" of a
   Provisioning Class. The SPPI does not support the equivalent of the
   SMI's scalar objects.

   The PIB name space is common to both the PEP and the PDP and data
   instances within this space are unique within the scope of a given
   Client-Type and Request-State per TCP connection between a PEP and
   PDP. If a device implements multiple COPS Client-Types, a unique
   instance space is to be provided for each separate Client-Type.
   There is no sharing of instance data across the Client-Types
   implemented by a PEP, even if the classes being instantiated are of
   the same type and share the same instance identifier.


   The SPPI extends SMI's MODULE-IDENTITY macro to convey the semantics
   of a PIB module.  The SUBJECT-CATEGORIES clause identifies one or
   more categories of provisioning data for which this PIB module
   defines provisioning information.

   The SPPI uses SMI's modified OBJECT-TYPE macro to convey the syntax
   and semantics of PRCs and their attributes. It uses SMI's
   OBJECT-GROUP and MODULE-COMPLIANCE macros to specify acceptable


   Adwankar              Expires January 19, 2005              [Page 16]


   Internet Draft          NetConf Data Model              July 19, 2004

   lower-bounds of implementation of the attributes of PRCs. The SPPI
   uses SMI's TEXTUAL CONVENTION macro to define following additional
   data types that are common to several attributes of one of more
   PRCs.

   Type               Representation
   InstanceId         Instance-identifying index of a PRC
   ReferenceId        Reference an instance of a particular PRC
   Prid               Pointer to a PRI
   TagId              Tag value. All instances of a particular PRC
                      having the same tag value form a tag list
   TagReferenceId     Reference to a tag list of instances of a
                      particular PRC

   The SPPI defines types Integer64, Unsigned64 that are not defined
   in SMI. The SPPI does not use SMI's notification definitions.

   The SPPI does not define MAX-ACCESS clause as part of its
   OBJECT-TYPE macro and instead mandates that PIB-ACCESS clause must
   be present for a PRC's table definition. The PIB-ACCESS clause
   defines what kind of access is appropriate for the PRC. Thus the
   value "install" as shown in example below indicates that a PDP can
   install the particular PRC in the PEP as provisioning information.

   qosIfDscpAssignTable OBJECT-TYPE
       SYNTAX         SEQUENCE OF QosIfDscpAssignEntry
       PIB-ACCESS     install
       STATUS         current
       DESCRIPTION " "
       ::= { qosIfParameters 9 }

   The value "notify" indicates a PRC for which the PEP must notify
   the PDP of all its instances and attribute values of that PRC.

   The PIB-INDEX clause defines identification information for
   instances of the PRC. The PIB-INDEX clause includes exactly one
   descriptor. This descriptor specifies an attribute, which is used
   to identify an instance of that PRC. The syntax of this attribute
   is InstanceId.

   The OBJECT IDENTIFIER, which identifies an instance of a PRC is
   formed   by appending one sub-identifier to the OID which
   identifies that PRC's row definition.  The value of the additional
   sub-identifier is that instance's value of the attribute specified
   in the INDEX clause.

   The UNIQUENESS clause lists a set of zero or more of the PRC's
   attributes, for which no two instances of the PRC can have the same
   set of values as shown in example below.

   qosIfDscpAssignEntry OBJECT-TYPE
       SYNTAX         QosIfDscpAssignEntry
       STATUS         current
       DESCRIPTION
           "An instance of the qosIfDscpAssign class."


   Adwankar              Expires January 19, 2005              [Page 17]


   Internet Draft          NetConf Data Model              July 19, 2004

       PIB-INDEX      { qosIfDscpAssignPrid }
       UNIQUENESS     { qosIfDscpAssignName, qosIfDscpAssignRoles }
       ::= { qosIfDscpAssignTable 1 }

   The PIB-TAG clause is used to indicate that this attribute
   references a "tag list" of instances of another PRC.  Such a tag
   list is formed by all instances of the other PRC which have the
   same (tag) value of a particular attribute of that other PRC.


   3  Common Information Model

   The Common Information Model (CIM) [6] specification is the language
   and methodology for describing management data. The CIM is
   based on an object-oriented model. A Schema is composed of group of
   classes with a single owner. Each CIM class is a blueprint for a
   type of managed element. Classes contain properties, which describe
   the data of the class, and methods, which describe the behavior of
   the class. The schema in which it belongs scopes a class. A class
   must belong to only one schema and the class name must be unique
   for that schema.

   The CIM schema is combination of core and common models, where
   the core model captures notions that are applicable to all areas of
   management. The Common Models are information models that capture
   notions that are common to particular management areas, but
   independent of any particular technology or implementation.
   Examples of common models include systems, applications, networks
   and devices. Extension schemas represent technology-specific
   extensions of the common models.


   The Meta Schema is a formal definition of the model. The Unified
   Modeling Language (UML) is used to define the structure of the meta
   schema. The graphical forms use UML diagrams and are not normative.
   The textual forms are normative and written in a language based on
   the Interface Definition Language called the "Managed Object
   Format" (MOF). Example of CIM_ManagedElement class in MOF language
   is shown below.

   [Abstract, Version ("2.7.0"), Description (
    "ManagedElement is an abstract class that provides a common
    "superclass (or top of the inheritance tree) for the"
    "non-association classes in the CIM Schema.") ]
   class CIM_ManagedElement {

    [MaxLen (64), Description (
        "The Caption property is a short textual description (one-"
        "line string) of the object.") ]
    string Caption;

    [Description (
        "The Description property provides a textual description of "
        "the object.") ]
    string Description;


   Adwankar              Expires January 19, 2005              [Page 18]


   Internet Draft          NetConf Data Model              July 19, 2004


    [Description (
        "  A user-friendly name for the object. ..") ]
    string ElementName;
   };

   Each declaration in the MOF can be preceded by metadata enclosed in
   brackets. The CIM_ManagedElement class declaration is preceded
   by metadata enclosed in bracket that indicates that the managed
   element class is abstract and provides a description of the class.
   Different qualifiers can be declared for different data types and
   declarations. Thus the MaxLen qualifier for caption
   CIM_ManagedElement  will limit the length to 64 characters.

   Encoding
   The xmlCIM Encoding Specification defines XML elements, written in
   Document Type Definition (DTD), which can be used to represent CIM
   classes and instances. The DTD fragment of Object definition
   elements is as below.

   <!-- Object definition elements                         -->
   <!ELEMENT CLASS (QUALIFIER*, (PROPERTY | PROPERTY.ARRAY |
                                 PROPERTY.REFERENCE)*, METHOD*)>
   <!ATTLIST CLASS
        %CIMName;
        %SuperClass;
   >
   <!ELEMENT INSTANCE (QUALIFIER*, (PROPERTY | PROPERTY.ARRAY |
                                    PROPERTY.REFERENCE)*)>
   <!ATTLIST INSTANCE
        %ClassName;

   >
   <!ELEMENT QUALIFIER (VALUE | VALUE.ARRAY)>
   <!ATTLIST QUALIFIER %CIMName;
            %CIMType;              #REQUIRED
            %Propagated;
            %QualifierFlavor;>
   <!ELEMENT PROPERTY (QUALIFIER*, VALUE?)>
   <!ATTLIST PROPERTY %CIMName;
            %ClassOrigin;
            %Propagated;
            %CIMType;              #REQUIRED>
   ...


   CIM messages are encoded in XML such that
   each CIM message is described completely in XML. CIM Clients, CIM
   Servers or CIM Listeners are not required to validate received CIM
   Message Response or CIM Message Request. The encapsulation exposes
   key CIM message information in headers to allow efficient
   firewall/proxy handling.  The information is limited to that which
   is considered essential, in order not to have significant impact
   on the size of the Header. No CIM-specific information appears in
   a Header that does not also appear within the CIM message.


   Adwankar              Expires January 19, 2005              [Page 19]


   Internet Draft          NetConf Data Model              July 19, 2004


   Addressing
   Instances of a class are addressed by designating one or more
   properties with the reserved qualifier "key" provide instance
   identification. For example, as shown in Figure 13 the class has one
   property (Volume) which serves as its' key. Thus instances of Drive
   are distinguished using the Volume property, which acts as the key
   for the class. Compound keys are supported and are designated by
   marking each of the required properties with the key qualifier.

   class Acme_Drive
   {
        [key] string Volume;
        string FileSystem;
        sint32 Capacity;
   };

   A CIM object manager (CIMOM) is a database for instances of CIM
   classes. CIMOMs represent the central point for accessing
   management resources.


   4  Device Description Framework (DDF)

   The SyncML DM specifies device description framework (DDF) [7] that
   prescribes a way for device vendors to describe their devices. The
   DDF root element is management tree root node having one or more
   nodes, where each node element is recursive i.e. it make contain
   one or more node. Each management tree node has name, path URI to
   the node, default value, run time properties and description
   framework properties.


   Description Framework Properties
   The description framework properties as shown below are not
   explicit at run-time in a device.

   Property     Explanation                   Read/Write        Device
                                                                support
   AccessType   Specifies which commands        Read            MUST
                are allowed on the node.
   DefaultValue The node value used in          Read            MAY
                a device unless specifically
                set to a different value.
   Description  The human readable              Read            MAY
                description of the node.
   DFFormat     The data format of the          Read            MUST
                described node.
   Occurrence   Specifies the number of         Read            MAY
                instances
   Scope        Specifies whether this is       Read            MAY
                a permanent or dynamic node.
   DFTitle      The human readable name of      Read            MAY
                the node.
   DFType       For leaf nodes, the MIME type   Read            MUST


   Adwankar              Expires January 19, 2005              [Page 20]


   Internet Draft          NetConf Data Model              July 19, 2004

                of the node value.For interior
                nodes, a DDF document name or empty

   The node description property scope defines whether the node is
   permanent or dynamic. A management server cannot create or delete
   permanent nodes at runtime while dynamic nodes can be created and
   deleted at runtime. The AccessType DF property can be used to
   protect dynamic nodes from deletion. The node will be deleted even
   if the AccessType DF property excludes Delete if the node is part
   of subtree that is being deleted. A DDF description of "Man"
   (Manufacturer Name) management tree node is shown below.

   <MgmtTree>
    <VerDTD>1.1.2</VerDTD>
     <Node>
      <NodeName>Man</NodeName>
      <DFProperties>
        <AccessType>
         <Get/>
          </AccessType>
          <DefaultValue>ExampleCompany</DefaultValue>
          <Description>A Unique Example Company</Description>
          <DFFormat>
           <chr/>
          </DFFormat>
          <Scope>
           <Permanent/>
          </Scope>
          <DFTitle>The name of the device manufacturer.</DFTitle>
          <DFType>
           <MIME>text/plain</MIME>
          </DFType>
     </DFProperties>
    </Node>
    ...
   </MgmtTree>


   RunTime Properties
   The run time properties as shown below can change at run-time and
   are optional within its parent element node.

   Property     Explanation             Read/Write      Device support
   ACL          Access Control List     Read & Write    MUST
   Format       Specifies how node      Read            MUST
                values should be
                interpreted
   Name         The name of the node    Read & Write    MUST
                in the tree
   Size         Size of the node        Read            MUST for leaf
                value in bytes                          nodes
                                                        MUST NOT for
                                                        interior nodes
   Title        Human readable name     Read & Write    MAY
   TStamp       Time stamp, date and    Read            MAY


   Adwankar              Expires January 19, 2005              [Page 21]


   Internet Draft          NetConf Data Model              July 19, 2004

                time of last change
   Type         The MIME type of        Read            MUST
                the node's value
   VerNo        Version number,         Read            MAY
                automatically incremented
                at each modification

   Each node is associated with a MIME type that determines the kind
   of management actions that can be performed on the node. A node
   with runtime format property set to "node" is Interior node and it
   has zero or more children. Nodes that are not interior nodes are
   leaf nodes. Each item in a management command is associated with
   Meta information containing format and type that correspond
   directly to data content in the node. The management command Add
   can be performed on interior nodes only.

   Access Control
   The Access Control List (ACL) runtime property is the only property
   that inherits ACL from parent nodes if it not explicitly specified.
   Example of ACL that allows changing node value to server identifier
   ACME and allows getting value to all other management servers is
   "Replace=www.ACME.com&Get=*" . A server identifier having
   Replace access rights according to node ACL can change the ACL
   value for interior nodes but same is not true for leaf nodes. A
   server identifier with sufficient access to parent node can change
   ACL of child node.

   Addressing Mechanism
   The SyncML DM defines a management tree of nodes and a unique full
   device URI addresses each node.

   Traversal
   Management servers can traverse through device management tree
   using GET commands. The Get on an interior node will return a list
   of all child node names. The properties of each node can be
   accessed by appending ?prop=<property_name> to the node's URI. Thus
   ACL for node xyxInc can be accessed with following URI
   ./SyncML/DMAccounts/xyzInc?prop=ACL



   5  Web Services Distributed Management (WSDM)

   WSDM [8] is in the process of defining web services architecture
   and technology to manage distributed resources and the
   model of a web service as a manageable resource. Managers establish
   the endpoint that provides manageability for a given Web service
   endpoint and manage the web service endpoint. The manager can
   retrieve metadata such as display Name, Metrics/Counters of
   requests/replies/faults, service state information such as UP/DOWN
   and time since last state change. It can request configuration
   control and has startup/shutdown capability. The manager can also
   get notifications against service state and notifications against
   request processing.



   Adwankar              Expires January 19, 2005              [Page 22]


   Internet Draft          NetConf Data Model              July 19, 2004

   Addressing
   Addressing is to reference the web services of a manageability
   provider, or, to reference a manageable resource. The data
   structure as shown below holds sufficient information
   for a manageability consumer to locate the Web service and to
   exchange messages with the Web service.

   <wsa:EndpointReference>
    <wsa:Address>xs:anyURI</wsa:Address>
    <wsa:ReferenceProperties> ... </wsa:ReferenceProperties> ?
    <wsa:PortType>xs:QName</wsa:PortType> ?
    <wsa:ServiceName PortName="xs:NCName"?>xs:QName</wsa:ServiceName> ?
    <wsp:Policy> ... </wsp:Policy>*
   </wsa:EndpointReference>

   Capabilities
   Many manageability capabilities of a manageable service concern the
   resource the manager is able to query and set. This information is
   modeled as a set of properties as shown in example below.

   <wsdl:definitions  xmlns:tns="http://example.com/diskDrive" >
    <wsdl:types>
     <xsd:schema targetNamespace="http://example.com/diskDrive" ... >
      <!-- Resource property element declarations -->
      <xsd:element name="NumberOfBlocks" type="xsd:integer"/>
      <xsd:element name="BlockSize" type="xsd:integer" />

      <xsd:element name="Manufacturer" type="xsd:string" />

      <!-- Resource properties document declaration -->
      <xsd:element name="GenericDiskDriveProperties">
       <xsd:complexType>
        <xsd:sequence>
         <xsd:element ref="tns:NumberOfBlocks"/>
         <xsd:element ref="tns:BlockSize" />
         <xsd:element ref="tns:Manufacturer" />
         <xsd:any minOccurs="0" maxOccurs="unbounded" />
        </xsd:sequence>
       </xsd:complexType>
      </xsd:element>
     </xsd:schema>
    </wsdl:types>

    <!-- Association of resource properties document to a portType -->
    <wsdl:portType name="GenericDiskDrive"
            wsrp:ResourceProperties="tns:GenericDiskDriveProperties" >
     <operation name="start" />
     <operation name="stop" />
    </wsdl:portType>
   </wsdl:definitions>

   By using a property schema, it is possible to find, to read, and to
   write a property. A property is part of the advertised
   manageability interface for a resource. For manageability, a
   property can represent configuration values, metrics, identifiers


   Adwankar              Expires January 19, 2005              [Page 23]


   Internet Draft          NetConf Data Model              July 19, 2004

   etc.

   Notification
   Notification provides mechanism for manageable resources to convey
   information to the managers. In certain cases, it is unreasonable
   for the manager to explicitly poll (request) the information, and
   it has to be sent to the manager by the manageable resource. The
   manageable resource for the service may have to notify the manager
   when the event occurs. The manageable resource needs to know which
   manager is interested in which information and the address (es) of
   the manager in order to send a notification message whenever an
   event occurs. A NotificationProducer can send the Notify message as
   shown in Figure 19 to the NotificationConsumer in order to deliver
   one or more NotificationMessage(s).

   <wsnt:Notify>
    <wsnt:NotificationMessage>
     <wsnt:Topic dialect="xsd:anyURI">
      {any}
     </wsnt:Topic>
     <wsnt:ProducerReference>?
      wsa:EndpointReference
     </wsnt:ProducerReference>
     <wsnt:Message>
      xsd:any
     </wsnt:Message>
    <wsnt:NotificationMessage>+
   </wsnt:Notify>


Appendix B. NetConf Data Model Schema

   <schema
     targetNamespace="urn:ietf:params:xml:ns:netconf:data:base:1.0"
     elementFormDefault="qualified" attributeFormDefault="qualified"
     xmlns="http://www.w3.org/2001/XMLSchema"
     xmlns:nc="urn:ietf:params:xml:ns:netconf:data:base:1.0"
     xmlns:prot="urn:ietf:params:xml:ns:netconf:base:1.0">
    <import namespace="urn:ietf:params:xml:ns:netconf:base:1.0"
            schemaLocation="protocol.xsd"/>
     <annotation>
      <documentation xml:lang="en">
         The NetConf Data Model definition
      </documentation>
     </annotation>

     <element name="MOTree">
      <complexType>
       <sequence>
        <element name="Identity" type="nc:IdentityType"/>
        <element ref="nc:Node" minOccurs="0" maxOccurs="unbounded"/>
       </sequence>
      </complexType>
     </element>



   Adwankar              Expires January 19, 2005              [Page 24]


   Internet Draft          NetConf Data Model              July 19, 2004

     <complexType name="IdentityType">
      <sequence>
       <element name="Name" type="string"/>
       <element name="Path" type="anyURI"/>
       <element name="LastUpdated" type="dateTime"/>
       <element name="VerNo" type="unsignedShort"/>
       <element name="Organization" type="nc:DisplayString"/>
       <element name="Contact" type="nc:ContactType"
                maxOccurs="unbounded"/>
       <element name="Description" type="nc:Description"
                minOccurs="0"/>
       <element name="RevisionHistory" type="nc:RevisionType"
                maxOccurs="unbounded"/>
      </sequence>
     </complexType>

     <complexType name="RevisionType">
      <sequence>
       <element name="Revision" type="dateTime"/>
       <element name="Description" type="nc:Description"/>
      </sequence>
     </complexType>

     <complexType name="ContactType">
      <sequence>
       <element name="Name" type="nc:DisplayString"/>
       <element name="Postal" type="nc:Description" minOccurs="0"/>
       <element name="EMail" type="anyURI"/>
       <element name="Phone" type="string" minOccurs="0"/>
       <element name="otherInfo" type="nc:Description" minOccurs="0"/>
      </sequence>
     </complexType>

     <element name="Node" type="nc:NodeType" abstract="true"/>

     <complexType name="NodeType">
      <sequence>
       <element name="Name" type="string" minOccurs="0"/>
       <element name="Path" type="anyURI" minOccurs="0"/>
       <element name="ACL" type="nc:ACLType" minOccurs="0"/>
       <element name="Title" type="nc:DisplayString" minOccurs="0"/>
       <element name="LastUpdated" type="dateTime" minOccurs="0"/>
       <element name="VerNo" type="unsignedShort" minOccurs="0"/>
       <element name="parent" type="nc:ParentName" minOccurs="0"/>
       <element name="maxAccess" type="nc:AccessType" minOccurs="0"/>
       <element name="status" type="nc:Status" minOccurs="0"/>
       <element name="description" type="nc:Description"
                 minOccurs="0"/>
       <element name="Node" type="nc:NodeType" minOccurs="0"
                 maxOccurs="unbounded"/>
      </sequence>
     </complexType>

      <complexType name="ACLType">
       <sequence>


   Adwankar              Expires January 19, 2005              [Page 25]


   Internet Draft          NetConf Data Model              July 19, 2004

        <element name="ACLEntry" type="nc:ACLEntryType" minOccurs="0"
                 maxOccurs="unbounded"/>
        <element name="inherit" type="boolean" default="true"
                 minOccurs="0" />
       </sequence>
      </complexType>

      <complexType name="ACLEntryType">
       <sequence>
        <element name="access" type="nc:AccessType"/>
        <element name="Identifier" type="nc:IdentifierType"/>
        <element name="accessDuration" type="duration" minOccurs="0"/>
       </sequence>
      </complexType>

      <complexType name="IdentifierType">
       <sequence>
        <element name="accessor" type="string" default="*"
                 minOccurs="0" maxOccurs="unbounded" />
       </sequence>
      </complexType>

      <simpleType name="Container">
       <restriction base="string">
        <enumeration value="subtree"/>
        <enumeration value="table"/>
        <enumeration value="entry"/>
       </restriction>
      </simpleType>

      <complexType name="ReadCreateAccess">
       <sequence>
        <element ref="nc:get-config"/>
        <element ref="nc:edit-config-merge"/>
        <element ref="nc:edit-config-replace"/>
        <element ref="nc:edit-config-create"/>
        <element ref="nc:edit-config-delete"/>
        <element ref="nc:copy-config"/>
        <element ref="nc:get"/>
        <element ref="nc:lock"/>
        <element ref="nc:unlock"/>
        <element ref="nc:validate"/>
        <element ref="nc:commit"/>
        <element ref="nc:discard-changes"/>
       </sequence>
      </complexType>

      <complexType name="ReadWriteAccess">
       <sequence>
        <element ref="nc:get-config"/>
        <element ref="nc:edit-config-merge"/>
        <element ref="nc:edit-config-replace"/>
        <element ref="nc:copy-config"/>
        <element ref="nc:get"/>
        <element ref="nc:lock"/>


   Adwankar              Expires January 19, 2005              [Page 26]


   Internet Draft          NetConf Data Model              July 19, 2004

        <element ref="nc:unlock"/>
        <element ref="nc:validate"/>
        <element ref="nc:commit"/>
        <element ref="nc:discard-changes"/>
       </sequence>
      </complexType>

      <complexType name="ReadAccess">
       <sequence>
        <element ref="nc:get-config"/>
        <element ref="nc:get"/>
        <element ref="nc:lock"/>
        <element ref="nc:unlock"/>
        <element ref="nc:validate"/>
       </sequence>
      </complexType>

      <complexType name="NotAccessible"/>

      <complexType name="AccessType">
       <choice>
        <element name="No" type="nc:NotAccessible"/>
        <element name="Read" type="nc:ReadAccess" minOccurs="0"/>
        <element name="Write" type="nc:ReadWriteAccess"/>
        <element name="Full" type="nc:ReadCreateAccess"/>
       </choice>
      </complexType>

      <!-- NetConf Protocol Operations -->
      <element name="rpcOperation" type="string" abstract="true"/>
      <element name="get-config" type="string"
               substitutionGroup="nc:rpcOperation"/>
      <element name="edit-config-merge" type="string"
               substitutionGroup="nc:rpcOperation"/>
      <element name="edit-config-replace" type="string"
               substitutionGroup="nc:rpcOperation"/>
      <element name="edit-config-create" type="string"
               substitutionGroup="nc:rpcOperation"/>
      <element name="edit-config-delete" type="string"
               substitutionGroup="nc:rpcOperation"/>
      <element name="copy-config" type="string"
               substitutionGroup="nc:rpcOperation"/>
      <element name="get" type="string"
               substitutionGroup="nc:rpcOperation"/>
      <element name="lock" type="string"
               substitutionGroup="nc:rpcOperation"/>
      <element name="unlock" type="string"
               substitutionGroup="nc:rpcOperation"/>
      <element name="validate" type="string"
               substitutionGroup="nc:rpcOperation"/>
      <element name="commit" type="string"
               substitutionGroup="nc:rpcOperation"/>
      <element name="discard-changes" type="string"
               substitutionGroup="nc:rpcOperation"/>



   Adwankar              Expires January 19, 2005              [Page 27]


   Internet Draft          NetConf Data Model              July 19, 2004

      <simpleType name="Status">
       <restriction base="string">
        <enumeration value="current"/>
        <enumeration value="deprecated"/>
        <enumeration value="obsolete"/>
       </restriction>
      </simpleType>

      <simpleType name="Description">
       <restriction base="string">
        <maxLength value="2048"/>
       </restriction>
      </simpleType>

      <simpleType name="DisplayString">
       <restriction base="string">
        <maxLength value="255"/>
       </restriction>
      </simpleType>

      <simpleType name="ParentName">
       <restriction base="token">
        <minLength value="1"/>
       </restriction>
      </simpleType>

      <complexType name="Compliance">
       <sequence>
        <element name="Title" type="nc:DisplayString" minOccurs="0"/>
        <element name="LastUpdated" type="dateTime" minOccurs="0"/>
        <element name="VerNo" type="unsignedShort" minOccurs="0"/>
       </sequence>
      </complexType>

      <!-- Generic Types -->
      <simpleType name="MD5">
       <restriction base="string">
        <pattern value="[0-9a-zA-Z]{32}"/>
       </restriction>
      </simpleType>

      <simpleType name="IPAddress">
        <restriction base="string">
         <maxLength value="39"/>
        </restriction>
      </simpleType>

      <simpleType name="IPV4Address">
       <restriction base="nc:IPAddress">
        <minLength value="7"/>
        <maxLength value="15"/>
        <pattern value="(([0-1]?[0-9]?[0-9]|2?[0-5]?[0-5])\.){2}
                        ([0-1]?[0-9]?[0-9]|2?[0-5]?[0-5])"/>
       </restriction>
      </simpleType>


   Adwankar              Expires January 19, 2005              [Page 28]


   Internet Draft          NetConf Data Model              July 19, 2004


      <!-- IPV6 address -->
      <simpleType name="IPV6AddressFull">
       <restriction base="nc:IPAddress">
        <pattern value="(([0-9a-fA-F]{1,4}:){7})([0-9a-fA-F]{1,4})"/>
       </restriction>
      </simpleType>

      <simpleType name="IPV6AddressMixed">
       <restriction base="nc:IPAddress">
        <pattern value="(([0-9a-fA-F]{1,4}:){6})
            (([0-9a-fA-F]{1,4}:[0-9a-fA-F]{1,4})|
            ([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))"/>
       </restriction>
      </simpleType>

      <simpleType name="IPV6AddressShortened">
       <restriction base="nc:IPAddress">
        <pattern value="(([0-9a-fA-F]{1,4}:)*|([0-9a-fA-F]{1,4}))*(::)
                        (([0-9a-fA-F]{1,4}:)*|([0-9a-fA-F]{1,4}))*"/>
       </restriction>
      </simpleType>

      <!-- RFC3513 -->
      <simpleType name="IPV6Address">
        <union memberTypes="nc:IPV6AddressFull nc:IPV6AddressMixed
                            nc:IPV6AddressShortened"/>
      </simpleType>

      <simpleType name="DomainName">
       <restriction base="string">
         <pattern value="([\p{L}\p{N}]*\.)*[\p{L}\p{N}]?"/>
       </restriction>
      </simpleType>

      <simpleType name="MacAddress">
       <restriction base="string">
        <pattern value="[0-9a-fA-F]{12}"/>
       </restriction>
      </simpleType>

      <simpleType name="PhysAddress">
       <restriction base="string">
        <pattern value="[0-9a-fA-F]{0,12}"/>
       </restriction>
      </simpleType>

      <simpleType name="PORT">
       <restriction base="unsignedInt">
        <minInclusive value="1"/>
        <maxInclusive value="65535"/>
       </restriction>
      </simpleType>

      <simpleType name="AliasString">


   Adwankar              Expires January 19, 2005              [Page 29]


   Internet Draft          NetConf Data Model              July 19, 2004

       <restriction base="string">
        <maxLength value="64"/>
       </restriction>
      </simpleType>

      <simpleType name="RowStatus">
       <restriction base="unsignedByte">
        <enumeration value="1"/> <!-- active -->
        <enumeration value="2"/> <!-- notInService -->
        <enumeration value="3"/> <!-- notReady -->
        <enumeration value="4"/> <!-- createAndGo -->
        <enumeration value="5"/> <!-- createAndWait -->
        <enumeration value="6"/> <!-- destroy -->
       </restriction>
      </simpleType>

      <simpleType name="AdminStatus">
       <restriction base="unsignedByte">
        <enumeration value="1"/> <!-- Up -->
        <enumeration value="2"/> <!-- Down -->
        <enumeration value="3"/> <!-- Testing -->
       </restriction>
      </simpleType>

      <simpleType name="OperStatus">
       <restriction base="unsignedByte">
        <enumeration value="1"/> <!-- Up -->
        <enumeration value="2"/> <!-- Down -->
        <enumeration value="3"/> <!-- Testing -->
        <enumeration value="4"/> <!-- Unknown -->
        <enumeration value="5"/> <!-- Dormant -->
        <enumeration value="6"/> <!-- NotPresent -->
        <enumeration value="7"/> <!-- LowerLayerDown -->
       </restriction>
      </simpleType>

      <simpleType name="AddressStatus">
       <restriction base="unsignedByte">
        <enumeration value="1"/> <!-- other -->
        <enumeration value="2"/> <!-- volatile -->
        <enumeration value="3"/> <!-- nonVolatile -->
       </restriction>
      </simpleType>

      <simpleType name="UpDownStatus">
       <restriction base="unsignedByte">
        <enumeration value="1"/> <!-- Up -->
        <enumeration value="2"/> <!-- Down -->
       </restriction>
      </simpleType>
   </schema>


Appendix C. System Schema



   Adwankar              Expires January 19, 2005              [Page 30]


   Internet Draft          NetConf Data Model              July 19, 2004

   <schema
     targetNamespace="urn:ietf:params:xml:ns:netconf:data:system:1.0"
     elementFormDefault="qualified" attributeFormDefault="qualified"
     xmlns="http://www.w3.org/2001/XMLSchema"
     xmlns:nc="urn:ietf:params:xml:ns:netconf:data:base:1.0"
     xmlns:sys="urn:ietf:params:xml:ns:netconf:data:system:1.0">
    <import namespace="urn:ietf:params:xml:ns:netconf:data:base:1.0"
            schemaLocation="nc.xsd"/>
     <element name="system" substitutionGroup="nc:Node">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="nc:ParentName" fixed="netconf"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description" fixed=
                   "a collection of objects common to all managed
                   systems." minOccurs="0"/>
          <element ref="sys:sysDescr"/>
          <element ref="sys:sysObjectID"/>
          <element ref="sys:sysUpTime"/>
          <element ref="sys:sysContact"/>
          <element ref="sys:sysName"/>
          <element ref="sys:sysLocation"/>
          <element ref="sys:sysServices"/>
          <element ref="sys:sysORTable"/>
         </sequence>
         <attribute name="value" type="nc:Container" fixed="subtree"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="sysDescr" substitutionGroup="nc:Node">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="nc:ParentName" fixed="system"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description" fixed=
                   "A textual description of the entity.  This value
                    should include the full name and version
                    identification of the system's hardware type,
                    software operating-system, and networking
                    software." minOccurs="0"/>
         </sequence>


   Adwankar              Expires January 19, 2005              [Page 31]


   Internet Draft          NetConf Data Model              July 19, 2004

         <attribute name="value" type="nc:DisplayString"
                    use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="sysObjectID">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="nc:ParentName" fixed="system"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description" fixed=
                   "The vendor's authoritative identification of the
                   network management subsystem contained in the
                   entity." minOccurs="0"/>
         </sequence>
         <attribute name="value" type="anyURI" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="sysUpTime">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="nc:ParentName" fixed="system"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description" fixed=
                   "The time (in hundredths of a second) since the
                   network management portion of the system was last
                   re-initialized." minOccurs="0"/>
         </sequence>
         <attribute name="value" type="duration" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="sysContact">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">


   Adwankar              Expires January 19, 2005              [Page 32]


   Internet Draft          NetConf Data Model              July 19, 2004

         <sequence>
          <element name="parent" type="nc:ParentName" fixed="system"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadWriteAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description" fixed=
                   "The textual identification of the contact person
                   for this managed node, together with information on
                   how to contact this person.  If no contact
                   information is known, the value is the zero-length
                   string." minOccurs="0"/>
         </sequence>
         <attribute name="value" type="nc:DisplayString"
                     use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="sysName">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="nc:ParentName" fixed="system"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadWriteAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description" fixed=
                   "An administratively-assigned name for this managed
                   node.  By convention, this is the node's fully
                   qualified domain name.  If the name is unknown, the
                   value is the zero-length string." minOccurs="0"/>
         </sequence>
         <attribute name="value" type="nc:DisplayString"
                    use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="sysLocation">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="nc:ParentName" fixed="system"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadWriteAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"


   Adwankar              Expires January 19, 2005              [Page 33]


   Internet Draft          NetConf Data Model              July 19, 2004

                   minOccurs="0"/>
          <element name="description" type="nc:Description" fixed=
                   "The physical location of this node (e.g.,
                   'telephone closet, 3rd floor').  If the location
                   is unknown, the value is the zero-length string."
                   minOccurs="0"/>
         </sequence>
         <attribute name="value" type="nc:DisplayString"
                    use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="sysServices">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="nc:ParentName" fixed="system"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description" fixed=
                   "A value which indicates the set of services that
                   this entity may potentially offer.  The value is a
                   sum. This sum initially takes the value zero. Then,
                   for each layer, L, in the range 1 through 7, that
                   this node performs transactions for, 2 raised to
                   (L - 1) is added to the sum.  For example, a node
                   which performs only routing functions would have
                   a value of 4 (2^(3-1)). In contrast, a node which
                   is a host offering application services would have
                   a value of 72 (2^(4-1) + 2^(7-1)). Note that in the
                   context of the Internet suite of protocols, values
                   should be calculated accordingly:
                   layer      functionality
                      1        physical (e.g., repeaters)
                      2        datalink/subnetwork (e.g., bridges)
                      3        internet (e.g., supports the IP)
                      4        end-to-end  (e.g., supports the TCP)
                      7        applications (e.g., supports the SMTP)
                   For systems including OSI protocols, layers 5 and 6
                   may also be counted." minOccurs="0"/>
         </sequence>
         <attribute name="value" type="unsignedByte" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <!-- object resource information -->
     <element name="sysORLastChange">


   Adwankar              Expires January 19, 2005              [Page 34]


   Internet Draft          NetConf Data Model              July 19, 2004

      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="nc:ParentName" fixed="system"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description" fixed=
                   "The value of sysUpTime at the time of the most
                   recent change in state or value of any instance of
                   sysORID." minOccurs="0"/>
         </sequence>
         <attribute name="value" type="dateTime" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="sysORTable">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="nc:ParentName" fixed="system"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadWriteAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description" fixed=
                   "The (conceptual) table listing the capabilities"
                   minOccurs="0"/>
          <element ref="sys:sysOREntry" minOccurs="0"
                   maxOccurs="unbounded"/>
         </sequence>
         <attribute name="value" type="nc:Container" fixed="table"/>
        </extension>
       </complexContent>
      </complexType>
      <key name="sysORKey">
        <selector xpath="./sys:sysOREntry/sys:sysORIndex"/>
        <field xpath="@sys:value"/>
      </key>
     </element>

     <element name="sysOREntry">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="nc:ParentName"
                   fixed="sysORTable" minOccurs="0"/>


   Adwankar              Expires January 19, 2005              [Page 35]


   Internet Draft          NetConf Data Model              July 19, 2004

          <element name="maxAccess" type="nc:ReadCreateAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description" fixed=
                   "An entry (conceptual row) in the sysORTable."
                   minOccurs="0"/>
          <element ref="sys:sysORIndex"/>
          <element ref="sys:sysORID"/>
          <element ref="sys:sysORDescr"/>
          <element ref="sys:sysORUpTime"/>
         </sequence>
         <attribute name="value" type="nc:Container" fixed="entry"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="sysORIndex">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="nc:ParentName"
                   fixed="sysOREntry" minOccurs="0"/>
          <element name="maxAccess" type="nc:NotAccessible"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description" fixed=
                   "The auxiliary variable used for identifying
                   instances of the columnar objects in the
                   sysORTable." minOccurs="0"/>
         </sequence>
         <attribute name="value" type="positiveInteger"
                    use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="sysORID">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="nc:ParentName"
                   fixed="sysOREntry" minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description" fixed=
                   "An authoritative identification of a capabilities
                   statement" minOccurs="0"/>


   Adwankar              Expires January 19, 2005              [Page 36]


   Internet Draft          NetConf Data Model              July 19, 2004

         </sequence>
         <attribute name="value" type="anyURI" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="sysORDescr">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="nc:ParentName"
                   fixed="sysOREntry" minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description" fixed=
                   "A textual description of the capabilities
                   identified by the corresponding instance of
                   sysORID." minOccurs="0"/>
         </sequence>
         <attribute name="value" type="nc:DisplayString"
                    use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="sysORUpTime">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="nc:ParentName"
                   fixed="sysOREntry" minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description" fixed=
                   "The value of sysUpTime at the time this row was
                   last instantiated." minOccurs="0"/>
         </sequence>
         <attribute name="value" type="dateTime" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <group name="sysGroup">
      <sequence>
       <element ref="sys:sysDescr"/>
       <element ref="sys:sysObjectID"/>


   Adwankar              Expires January 19, 2005              [Page 37]


   Internet Draft          NetConf Data Model              July 19, 2004

       <element ref="sys:sysUpTime"/>
       <element ref="sys:sysContact"/>
       <element ref="sys:sysName"/>
       <element ref="sys:sysLocation"/>
       <element ref="sys:sysServices"/>
       <element ref="sys:sysORLastChange"/>
       <element ref="sys:sysORTable"/>
       <element ref="sys:sysOREntry"/>
       <element ref="sys:sysORIndex"/>
       <element ref="sys:sysORID"/>
       <element ref="sys:sysORDescr"/>
       <element ref="sys:sysORUpTime"/>
      </sequence>
     </group>

     <complexType name="systemGroup">
      <sequence>
       <group ref="sys:sysGroup"/>
        <element name="mandatory" type="boolean" fixed="true"/>
        <element name="description" type="nc:Description" fixed=
                 "The system group defines objects which are common
                 to all managed systems."/>
      </sequence>
     </complexType>

     <element name="schemaCompliance">
      <complexType>
       <complexContent>
        <extension base="nc:Compliance">
         <sequence>
          <element name="complianceGroup" type="sys:systemGroup"/>
          <element name="status" type="nc:Status" fixed="current"/>
          <element name="description" type="nc:Description"
                   fixed="The compliance statement."/>
         </sequence>
        </extension>
       </complexContent>
      </complexType>
     </element>

    </schema>



Appendix C. Interfaces Schema


   <schema targetNamespace=
           "urn:ietf:params:xml:ns:netconf:data:interfaces:1.0"
           elementFormDefault="qualified"
           attributeFormDefault="qualified"
           xmlns="http://www.w3.org/2001/XMLSchema"
           xmlns:nc="urn:ietf:params:xml:ns:netconf:data:base:1.0"
           xmlns:ianaIf="urn:iana:params:xml:ns:if:1.0"
           xmlns:if=


   Adwankar              Expires January 19, 2005              [Page 38]


   Internet Draft          NetConf Data Model              July 19, 2004

           "urn:ietf:params:xml:ns:netconf:data:interfaces:1.0">
    <import namespace="urn:ietf:params:xml:ns:netconf:data:base:1.0"
            schemaLocation="nc.xsd"/>
    <import namespace="urn:iana:params:xml:ns:if:1.0"
            schemaLocation="ianaIf.xsd"/>

     <element name="interfaces" substitutionGroup="nc:Node">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="netconf"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element ref="if:ifNumber"/>
          <element ref="if:ifTableLastChange"/>
          <element ref="if:ifTable"/>
         </sequence>
         <attribute name="value" type="nc:Container" fixed="subtree"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifObjects" substitutionGroup="nc:Node">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifNetConf"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element ref="if:ifXTable"/>
          <element ref="if:ifStackTable"/>
          <element ref="if:ifStackLastChange"/>
          <element ref="if:ifRcvAddressTable"/>
         </sequence>
         <attribute name="value" type="nc:Container" fixed="subtree"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifNumber">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="interfaces"


   Adwankar              Expires January 19, 2005              [Page 39]


   Internet Draft          NetConf Data Model              July 19, 2004

                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description" fixed=
                   "The number of network interfaces (regardless of
                   their current state) present on this system."
                   minOccurs="0"/>
         </sequence>
         <attribute name="value" type="unsignedInt" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifTableLastChange">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifObjects"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description" fixed=
                   "The value of sysUpTime at the time of the last
                   creation or deletion of an entry in the ifTable.
                   If the number of entries has been unchanged since
                   the last re-initialization of the local network
                   management subsystem, then this object contains a
                   zero value." minOccurs="0"/>
         </sequence>
         <attribute name="value" type="duration" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <!-- the Interfaces table -->
     <element name="ifTable">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="interfaces"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadWriteAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description" fixed=
                   "A list of interface entries.  The number of entries


   Adwankar              Expires January 19, 2005              [Page 40]


   Internet Draft          NetConf Data Model              July 19, 2004

                   is given by the value of ifNumber." minOccurs="0"/>
          <element ref="if:ifEntry" minOccurs="0"
                   maxOccurs="unbounded"/>
         </sequence>
         <attribute name="value" type="nc:Container" fixed="table"/>
        </extension>
       </complexContent>
      </complexType>
      <key name="ifKey">
       <selector xpath="./if:ifEntry/if:ifIndex"/>
       <field xpath="@if:value"/>
      </key>
     </element>

     <element name="ifEntry">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifTable"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadCreateAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description" fixed=
                   "An entry containing management information
                   applicable to a particular interface."
                   minOccurs="0"/>
          <element ref="if:ifIndex"/>
          <element ref="if:ifDescr"/>
          <element ref="if:ifType"/>
          <element ref="if:ifMtu"/>
          <element ref="if:ifSpeed"/>
          <element ref="if:ifPhysAddress"/>
          <element ref="if:ifAdminStatus"/>
          <element ref="if:ifOperStatus"/>
          <element ref="if:ifLastChange"/>
          <element ref="if:ifInOctets"/>
          <element ref="if:ifInUcastPkts"/>
          <element ref="if:ifInDiscards"/>
          <element ref="if:ifInErrors"/>
          <element ref="if:ifInUnknownProtos"/>
          <element ref="if:ifOutOctets"/>
          <element ref="if:ifOutUcastPkts"/>
          <element ref="if:ifOutDiscards"/>
          <element ref="if:ifOutErrors"/>
         </sequence>
         <attribute name="value" type="nc:Container" fixed="entry"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifIndex">


   Adwankar              Expires January 19, 2005              [Page 41]


   Internet Draft          NetConf Data Model              July 19, 2004

      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifEntry"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description" fixed=
                   "A unique value, greater than zero, for each
                   interface.  It is recommended that values are
                   assigned contiguously starting from 1.  The value
                   for each interface sub-layer must remain constant
                   at least from one re-initialization of the entity's
                   network management system to the next
                   re-initialization." minOccurs="0"/>
         </sequence>
         <attribute name="value" type="positiveInteger"
         use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifDescr">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifEntry"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description" fixed=
                   "A textual string containing information about the
                   interface.  This string should include the name of
                   the manufacturer, the product name and the version
                   of the interface hardware/software." minOccurs="0"/>
         </sequence>
         <attribute name="value" type="nc:DisplayString"
                    use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifType">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>


   Adwankar              Expires January 19, 2005              [Page 42]


   Internet Draft          NetConf Data Model              July 19, 2004

          <element name="parent" type="string" fixed="ifEntry"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description" fixed=
                   "The type of interface.  Additional values for
                   ifType are assigned by the Internet Assigned
                   Numbers Authority (IANA)" minOccurs="0"/>
         </sequence>
         <attribute name="value" type="ianaIf:IANAifType"
                    use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifMtu">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifEntry"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description" fixed=
                   "The size of the largest packet which can be
                   sent/received on the interface, specified in octets.
                   For interfaces that are used for transmitting
                   network datagrams, this is the size of the largest
                   network datagram that can be sent on the interface."
                   minOccurs="0"/>
         </sequence>
         <attribute name="value" type="unsignedInt" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifSpeed">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifEntry"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description" fixed=


   Adwankar              Expires January 19, 2005              [Page 43]


   Internet Draft          NetConf Data Model              July 19, 2004

                   "An estimate of the interface's current bandwidth
                   in bits per second.  For interfaces which do not
                   vary in bandwidth or for those where no accurate
                   estimation can be made, this object should contain
                   the nominal bandwidth.  If the bandwidth of the
                   interface is greater than the maximum value
                   reportable by this object then this object should
                   report its maximum value (4,294,967,295) and
                   ifHighSpeed must be used to report the interace's
                   speed.  For a sub-layer which has no concept of
                   bandwidth, this object should be zero."
                   minOccurs="0"/>
         </sequence>
         <attribute name="value" type="unsignedInt" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifPhysAddress">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifEntry"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description" fixed=
                   "The interface's address at its protocol sub-layer.
                   For example, for an 802.x interface, this object
                   normally contains a MAC address." minOccurs="0"/>
         </sequence>
         <attribute name="value" type="nc:PhysAddress" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifAdminStatus">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifEntry"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadWriteAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description" fixed=
                   "The desired state of the interface.  The testing(3)
                   state indicates that no operational packets can be


   Adwankar              Expires January 19, 2005              [Page 44]


   Internet Draft          NetConf Data Model              July 19, 2004

                   passed.  When a managed system initializes, all
                   interfaces start with ifAdminStatus in the down(2)
                   state.  As a result of either explicit management
                   action or per configuration information retained
                   by the managed system, ifAdminStatus is then changed
                   to either the up(1) or testing(3) states (or remains
                   in the down(2) state)" minOccurs="0"/>
         </sequence>
         <attribute name="value" type="nc:AdminStatus" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifOperStatus">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifEntry"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description" fixed=
                   "The current operational state of the interface.
                   The testing(3) state indicates that no operational
                   packets can be passed. If ifAdminStatus is down(2)
                   then ifOperStatus should be down(2). If
                   ifAdminStatus is changed to up(1) then ifOperStatus
                   should change to up(1) if the interface is ready to
                   transmit and receive network traffic; it should
                   change to dormant(5) if the interface is waiting for
                   external actions (such as a serial line waiting for
                   an incoming connection); it should remain in the
                   down(2) state if and only if there is a fault that
                   prevents it from going to the up(1) state; it should
                   remain in the notPresent(6) state if the interface
                   has missing (typically, hardware) components."
                   minOccurs="0"/>
         </sequence>
         <attribute name="value" type="nc:OperStatus" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifLastChange">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifEntry"
                   minOccurs="0"/>


   Adwankar              Expires January 19, 2005              [Page 45]


   Internet Draft          NetConf Data Model              July 19, 2004

          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description" fixed=
                   "The value of sysUpTime at the time the interface
                   entered its current operational state.  If the
                   current state was entered prior to the last
                   re-initialization of the local network management
                   subsystem, then this object contains a zero value."
                   minOccurs="0"/>
         </sequence>
         <attribute name="value" type="duration" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifInOctets">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifEntry"
                   minOccurs="0"/ >
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description" fixed=
                   "The total number of octets received on the
                   interface, including framing characters.
                   Discontinuities in the value of this counter can
                   occur at re-initialization of the management system,
                   and at other times as indicated by the value of
                   ifCounterDiscontinuityTime." minOccurs="0"/>
         </sequence>
         <attribute name="value" type="unsignedLong" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifInUcastPkts">
      <complexType>
        <complexContent>
         <extension base="nc:NodeType">
          <sequence>
           <element name="parent" type="string" fixed="ifEntry"
                    minOccurs="0"/>
           <element name="maxAccess" type="nc:ReadAccess"
                    minOccurs="0"/>
           <element name="status" type="nc:Status" fixed="current"
                    minOccurs="0"/>
           <element name="description" type="nc:Description" fixed=


   Adwankar              Expires January 19, 2005              [Page 46]


   Internet Draft          NetConf Data Model              July 19, 2004

                    "The number of packets, delivered by this sub-layer
                    to a higher (sub-)layer, which were not addressed
                    to a multicast or broadcast address at this
                    sub-layer. Discontinuities in the value of this
                    counter can occur at re-initialization of the
                    management system, and at other times as indicated
                    by the value of ifCounterDiscontinuityTime."
                    minOccurs="0"/>
         </sequence>
         <attribute name="value" type="unsignedLong" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifInDiscards">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifEntry"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description" fixed=
                   "The number of inbound packets which were chosen
                   to be discarded even though no errors had been
                   detected to prevent their being deliverable to a
                   higher-layer protocol. One possible reason for
                   discarding such a packet could be to free up buffer
                   space. Discontinuities in the value of this counter
                   can occur at re-initialization of the management
                   system, and at other times as indicated by the value
                   of ifCounterDiscontinuityTime." minOccurs="0"/>
         </sequence>
         <attribute name="value" type="unsignedLong" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

    <element name="ifInErrors">
     <complexType>
      <complexContent>
       <extension base="nc:NodeType">
        <sequence>
         <element name="parent" type="string" fixed="ifEntry"
                  minOccurs="0"/>
         <element name="maxAccess" type="nc:ReadAccess" minOccurs="0"/>
         <element name="status" type="nc:Status" fixed="current"
                  minOccurs="0"/>
         <element name="description" type="nc:Description"
                  fixed="For packet-oriented interfaces, the number of


   Adwankar              Expires January 19, 2005              [Page 47]


   Internet Draft          NetConf Data Model              July 19, 2004

                  inbound packets that contained errors preventing them
                  from being deliverable to a higher-layer protocol.
                  For character-oriented or fixed-length interfaces,
                  the number of inbound transmission units that
                  contained errors preventing them from being
                  deliverable to a higher-layer protocol.
                  Discontinuities in the value of this counter can
                  occur at re-initialization of the management system,
                  and at other times as indicated by the value of
                  ifCounterDiscontinuityTime." minOccurs="0"/>
         </sequence>
         <attribute name="value" type="unsignedLong" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifInUnknownProtos">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifEntry"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description"
                   fixed="For packet-oriented interfaces, the number of
                   packets received via the interface which were
                   discarded because of an unknown or unsupported
                   protocol.  For character-oriented or fixed-length
                   interfaces that support protocol multiplexing the
                   number of transmission units received via the
                   interface which were discarded because of an unknown
                   or unsupported protocol. For any interface that does
                   not support protocol multiplexing, this counter will
                   always be 0. Discontinuities in the value of this
                   counter can occur at re-initialization of the
                   management system, and at other times as indicated
                   by the value of ifCounterDiscontinuityTime."
                   minOccurs="0"/>
         </sequence>
         <attribute name="value" type="unsignedLong" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifOutOctets">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>


   Adwankar              Expires January 19, 2005              [Page 48]


   Internet Draft          NetConf Data Model              July 19, 2004

          <element name="parent" type="string" fixed="ifEntry"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description"
                   fixed="The total number of octets transmitted out of
                   the interface, including framing characters.
                   Discontinuities in the value of this counter can
                   occur at re-initialization of the management system,
                   and at other times as indicated by the value of
                   ifCounterDiscontinuityTime." minOccurs="0"/>
         </sequence>
         <attribute name="value" type="unsignedLong" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifOutUcastPkts">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifEntry"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description"
                   fixed="The total number of packets that higher-level
                   protocols requested be transmitted, and which were
                   not addressed to a multicast or broadcast address at
                   this sub-layer, including those that were discarded
                   or not sent. Discontinuities in the value of this
                   counter can occur at re-initialization of the
                   management system, and at other times as indicated
                   by the value of ifCounterDiscontinuityTime."
                   minOccurs="0"/>
         </sequence>
         <attribute name="value" type="unsignedLong" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifOutDiscards">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifEntry"
                   minOccurs="0"/>


   Adwankar              Expires January 19, 2005              [Page 49]


   Internet Draft          NetConf Data Model              July 19, 2004

          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description"
                   fixed="The number of outbound packets which were
                   chosen to be discarded even though no errors had
                   been detected to prevent their being transmitted.
                   One possible reason for discarding such a packet
                   could be to free up buffer space. Discontinuities
                   in the value of this counter can occur at
                   re-initialization of the management system, and at
                   other times as indicated by the value of
                   ifCounterDiscontinuityTime." minOccurs="0"/>
         </sequence>
         <attribute name="value" type="unsignedLong" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifOutErrors">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifEntry"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description"
                   fixed="For packet-oriented interfaces, the number of
                   outbound packets that could not be transmitted
                   because of errors. For character-oriented or
                   fixed-length interfaces, the number of outbound
                   transmission units that could not be transmitted
                   because of errors. Discontinuities in the value of
                   this counter can occur at re-initialization of the
                   management system, and at other times as indicated
                   by the value of ifCounterDiscontinuityTime."
                   minOccurs="0"/>
         </sequence>
         <attribute name="value" type="unsignedLong" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>


     <!-- Extension to the interface table -->
     <element name="ifXTable">
      <complexType>
       <complexContent>


   Adwankar              Expires January 19, 2005              [Page 50]


   Internet Draft          NetConf Data Model              July 19, 2004

        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifObjects"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadWriteAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description"
                   fixed="A list of interface entries.  The number of
                   entries is given by the value of ifNumber. This
                   table contains additional objects for the interface
                   table." minOccurs="0"/>
          <element ref="if:ifXEntry" minOccurs="0"
                   maxOccurs="unbounded"/>
         </sequence>
         <attribute name="value" type="nc:Container" fixed="table"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifXEntry">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifXTable"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadCreateAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description"
                   fixed="An entry containing additional management
                   information applicable to a particular interface."
                   minOccurs="0"/>
          <element ref="if:ifIndex"/>
          <element ref="if:ifDescr"/>
          <element ref="if:ifType"/>
          <element ref="if:ifMtu"/>
          <element ref="if:ifSpeed"/>
          <element ref="if:ifPhysAddress"/>
          <element ref="if:ifAdminStatus"/>
          <element ref="if:ifOperStatus"/>
          <element ref="if:ifLastChange"/>
          <element ref="if:ifInOctets"/>
          <element ref="if:ifInUcastPkts"/>
          <element ref="if:ifInDiscards"/>
          <element ref="if:ifInErrors"/>
          <element ref="if:ifInUnknownProtos"/>
          <element ref="if:ifOutOctets"/>
          <element ref="if:ifOutUcastPkts"/>
          <element ref="if:ifOutDiscards"/>
          <element ref="if:ifOutErrors"/>


   Adwankar              Expires January 19, 2005              [Page 51]


   Internet Draft          NetConf Data Model              July 19, 2004

         </sequence>
         <attribute name="value" type="nc:Container" fixed="entry"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifName">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifXEntry"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description"
                   fixed="The textual name of the interface.  The value
                   of this object should be the name of the interface
                   as assigned by the local device and should be
                   suitable for use in commands entered at the device's
                   `console'.  This might be a text name, such as `le0'
                   or a simple port number, such as `1', depending on
                   the interface naming syntax of the device.  If
                   several entries in the ifTable together represent a
                   single interface as named by the device, then each
                   will have the same value of ifName. If there is no
                   local name, or this object is otherwise not
                   applicable, then this object contains a zero-length
                   string." minOccurs="0"/>
         </sequence>
         <attribute name="value" type="nc:DisplayString"
                    use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifInMulticastPkts">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifXEntry"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description"
                   fixed="The number of packets, delivered by this
                   sub-layer to a higher (sub-)layer, which were
                   addressed to a multicast address at this sub-layer.


   Adwankar              Expires January 19, 2005              [Page 52]


   Internet Draft          NetConf Data Model              July 19, 2004

                   For a MAC layer protocol, this includes both Group
                   and Functional addresses. Discontinuities in the
                   value of this counter can occur at re-initialization
                   of the management system, and at other times as
                   indicated by the value of
                   ifCounterDiscontinuityTime." minOccurs="0"/>
         </sequence>
         <attribute name="value" type="unsignedLong" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifInBroadcastPkts">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifXEntry"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description"
                   fixed="The number of packets, delivered by this
                   sub-layer to a higher (sub-)layer, which were
                   addressed to a broadcast address at this sub-layer.
                   Discontinuities in the value of this counter can
                   occur at re-initialization of the management system,
                   and at other times as indicated by the value of
                   ifCounterDiscontinuityTime." minOccurs="0"/>
         </sequence>
         <attribute name="value" type="unsignedLong" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifOutMulticastPkts">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifXEntry"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description"
                   fixed="The total number of packets that higher-level
                   protocols requested be transmitted, and which were
                   addressed to a multicast address at this sub-layer,
                   including those that were discarded or not sent.


   Adwankar              Expires January 19, 2005              [Page 53]


   Internet Draft          NetConf Data Model              July 19, 2004

                   For a MAC layer protocol, this includes both Group
                   and Functional addresses. Discontinuities in the
                   value of this counter can occur at re-initialization
                   of the management system, and at other times as
                   indicated by the value of
                   ifCounterDiscontinuityTime." minOccurs="0"/>
         </sequence>
         <attribute name="value" type="unsignedLong" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifOutBroadcastPkts">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifXEntry"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess" minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description"
                   fixed="The total number of packets that higher-level
                   protocols requested be transmitted, and which were
                   addressed to a broadcast address at this sub-layer,
                   including those that were discarded or not sent.
                   Discontinuities in the value of this counter can
                   occur at re-initialization of the management system,
                   and at other times as indicated by the value of
                   ifCounterDiscontinuityTime." minOccurs="0"/>
         </sequence>
         <attribute name="value" type="unsignedLong" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifHCInOctets">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifXEntry"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description"
                   fixed="The total number of octets received on the
                   interface, including framing characters.  This
                   object is a 64-bit version of ifInOctets.
                   Discontinuities in the value of this counter can


   Adwankar              Expires January 19, 2005              [Page 54]


   Internet Draft          NetConf Data Model              July 19, 2004

                   occur at re-initialization of the management system,
                   and at other times as indicated by the value of
                   ifCounterDiscontinuityTime." minOccurs="0"/>
         </sequence>
         <attribute name="value" type="unsignedLong" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifHCInUcastPkts">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifXEntry"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description"
                   fixed="The number of packets, delivered by this
                   sub-layer to a higher (sub-)layer, which were not
                   addressed to a multicast or broadcast address at
                   this sub-layer.  This object is a 64-bit version of
                   ifInUcastPkts. Discontinuities in the value of this
                   counter can occur at re-initialization of the
                   management system, and at other times as indicated
                   by the value of ifCounterDiscontinuityTime."
                   minOccurs="0"/>
         </sequence>
         <attribute name="value" type="unsignedLong" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifHCInMulticastPkts">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifXEntry"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description"
                   fixed="The number of packets, delivered by this
                   sub-layer to a higher (sub-)layer, which were
                   addressed to a multicast address at this sub-layer.
                   For a MAC layer protocol, this includes both Group
                   and Functional addresses.  This object is a 64-bit


   Adwankar              Expires January 19, 2005              [Page 55]


   Internet Draft          NetConf Data Model              July 19, 2004

                   version of ifInMulticastPkts. Discontinuities in the
                   value of this counter can occur at re-initialization
                   of the management system, and at other times as
                   indicated by the value of
                   ifCounterDiscontinuityTime." minOccurs="0"/>
         </sequence>
         <attribute name="value" type="unsignedLong" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifHCInBroadcastPkts">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifXEntry"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description"
                   fixed="The number of packets, delivered by this
                   sub-layer to a higher (sub-)layer, which were
                   addressed to a broadcast address at this sub-layer.
                   This object is a 64-bit version of
                   ifInBroadcastPkts. Discontinuities in the value of
                   this counter can occur at re-initialization of the
                   management system, and at other times as indicated
                   by the value of ifCounterDiscontinuityTime."
                   minOccurs="0"/>
         </sequence>
         <attribute name="value" type="unsignedLong" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifHCOutOctets">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifXEntry"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description"
                   fixed="The total number of octets transmitted out of
                   the interface, including framing characters.  This
                   object is a 64-bit version of ifOutOctets.


   Adwankar              Expires January 19, 2005              [Page 56]


   Internet Draft          NetConf Data Model              July 19, 2004

                   Discontinuities in the value of this counter can
                   occur at re-initialization of the management system,
                   and at other times as indicated by the value of
                   ifCounterDiscontinuityTime." minOccurs="0"/>
         </sequence>
         <attribute name="value" type="unsignedLong" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifHCOutUcastPkts">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifXEntry"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description"
                   fixed="The total number of packets that higher-level
                   protocols requested be transmitted, and which were
                   not addressed to a multicast or broadcast address at
                   this sub-layer, including those that were discarded
                   or not sent.  This object is a 64-bit version of
                   ifOutUcastPkts. Discontinuities in the value of this
                   counter can occur at re-initialization of the
                   management system, and at other times as indicated
                   by the value of ifCounterDiscontinuityTime."
                   minOccurs="0"/>
         </sequence>
         <attribute name="value" type="unsignedLong" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifHCOutMulticastPkts">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifXEntry"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description"
                   fixed="The total number of packets that higher-level
                   protocols requested be transmitted, and which were
                   addressed to a multicast address at this sub-layer,


   Adwankar              Expires January 19, 2005              [Page 57]


   Internet Draft          NetConf Data Model              July 19, 2004

                   including those that were discarded or not sent. For
                   a MAC layer protocol, this includes both Group and
                   Functional addresses.  This object is a 64-bit
                   version of ifOutMulticastPkts. Discontinuities in
                   the value of this counter can occur at
                   re-initialization of the management system, and at
                   other times as indicated by the value of
                   ifCounterDiscontinuityTime." minOccurs="0"/>
         </sequence>
         <attribute name="value" type="unsignedLong" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifHCOutBroadcastPkts">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifXEntry"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description"
                   fixed="The total number of packets that higher-level
                   protocols requested be transmitted, and which were
                   addressed to a broadcast address at this sub-layer,
                   including those that were discarded or not sent.
                   This object is a 64-bit version of
                   ifOutBroadcastPkts. Discontinuities in the value of
                   this counter can occur at re-initialization of the
                   management system, and at other times as indicated
                   by the value of ifCounterDiscontinuityTime."
                   minOccurs="0"/>
         </sequence>
         <attribute name="value" type="unsignedLong" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifLinkUpDownTrapEnable">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifXEntry"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadWriteAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>


   Adwankar              Expires January 19, 2005              [Page 58]


   Internet Draft          NetConf Data Model              July 19, 2004

          <element name="description" type="nc:Description"
                   fixed="Indicates whether linkUp/linkDown traps
                   should be generated for this interface. By default,
                   this object should have the value enabled(1) for
                   interfaces which do not operate on 'top' of any
                   other interface (as defined in the ifStackTable),
                   and disabled(2) otherwise." minOccurs="0"/>
         </sequence>
         <attribute name="value" type="nc:UpDownStatus"
                    use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifHighSpeed">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifXEntry"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description"
                   fixed="An estimate of the interface's current
                   bandwidth in units of 1,000,000 bits per second.
                   If this object reports a value of `n' then the
                   speed of the interface is somewhere in the range
                   of `n-500,000' to `n+499,999'.  For interfaces which
                   do not vary in bandwidth or for those where no
                   accurate estimation can be made, this object should
                   contain the nominal bandwidth. For a sub-layer which
                   has no concept of bandwidth, this object should be
                   zero." minOccurs="0"/>
         </sequence>
         <attribute name="value" type="unsignedLong" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifPromiscuousMode">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifXEntry"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadWriteAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>


   Adwankar              Expires January 19, 2005              [Page 59]


   Internet Draft          NetConf Data Model              July 19, 2004

          <element name="description" type="nc:Description"
                   fixed="This object has a value of false(2) if this
                   interface only accepts packets/frames that are
                   addressed to this station. This object has a value
                   of true(1) when the station accepts all
                   packets/frames transmitted on the media. The value
                   true(1) is only legal on certain types of media. If
                   legal, setting this object to a value of true(1) may
                   require the interface to be reset before becoming
                   effective. The value of ifPromiscuousMode does not
                   affect the reception of broadcast and multicast
                   packets/frames by the interface." minOccurs="0"/>
         </sequence>
         <attribute name="value" type="boolean" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifConnectorPresent">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifXEntry"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description"
                   fixed="This object has the value 'true(1)' if the
                   interface sublayer has a physical connector and the
                   value 'false(2)'" minOccurs="0"/>
         </sequence>
         <attribute name="value" type="boolean" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifAlias">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifXEntry"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadWriteAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description"
                   fixed="This object is an 'alias' name for the
                   interface as specified by a network manager, and


   Adwankar              Expires January 19, 2005              [Page 60]


   Internet Draft          NetConf Data Model              July 19, 2004

                   provides a non-volatile 'handle' for the interface.
                   On the first instantiation of an interface, the
                   value of ifAlias associated with that interface is
                   the zero-length string.  As and when a value is
                   written into an instance of ifAlias through a
                   network management set operation, then the agent
                   must retain the supplied value in the ifAlias
                   instance associated with the same interface for as
                   long as that interface remains instantiated,
                   including across all re-initializations/reboots of
                   the network management system, including those which
                   result in a change of the interface's ifIndex value.
                   An example of the value which a network manager
                   might store in this object for a WAN interface is
                   the (Telco's) circuit number/identifier of the
                   interface. Some agents may support write-access only
                   for interfaces having particular values of ifType.
                   An agent which supports write access to this object
                   is required to keep the value in non-volatile
                   storage, but it may limit the length of new values
                   depending on how much storage is already occupied by
                   the current values for other interfaces."
                   minOccurs="0"/>
         </sequence>
         <attribute name="value" type="nc:AliasString" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifCounterDiscontinuityTime">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifXEntry"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description"
                   fixed="The value of sysUpTime on the most recent
                   occasion at which any one or more of this
                   interface's counters suffered a discontinuity.
                   The relevant counters are the specific instances
                   associated with this interface of any Counter32 or
                   Counter64 object contained in the ifTable or
                   ifXTable. If no such discontinuities have occurred
                   since the last re-initialization of the local
                   management subsystem, then this object contains a
                   zero value." minOccurs="0"/>
         </sequence>
         <attribute name="value" type="dateTime" use="required"/>
        </extension>


   Adwankar              Expires January 19, 2005              [Page 61]


   Internet Draft          NetConf Data Model              July 19, 2004

       </complexContent>
      </complexType>
     </element>


     <!-- The Interface Stack Group -->
     <element name="ifStackTable">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifObjects"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadWriteAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description"
                   fixed="The table containing information on the
                   relationships between the multiple sub-layers of
                   network interfaces. In particular, it contains
                   information on which sub-layers run 'on top of'
                   which other sub-layers, where each sub-layer
                   corresponds to a conceptual row in the ifTable. For
                   example, when the sub-layer with ifIndex value x
                   runs over the sub-layer with ifIndex value y, then
                   this table contains: ifStackStatus.x.y=active
                   For each ifIndex value, I, which identifies an
                   active interface, there are always at least two
                   instantiated rows in this table associated with I.
                   For one of these rows, I is the value of
                   ifStackHigherLayer; for the other, I is the value of
                   ifStackLowerLayer. (If I is not involved in
                   multiplexing, then these are the only two rows
                   associated with I.) For example, two rows exist even
                   for an interface which has no others stacked on top
                   or below it: ifStackStatus.0.x=active
                   ifStackStatus.x.0=active" minOccurs="0"/>
          <element ref="if:ifStackEntry" minOccurs="0"
                   maxOccurs="unbounded"/>
         </sequence>
         <attribute name="value" type="nc:Container" fixed="table"/>
        </extension>
       </complexContent>
      </complexType>
      <key name="ifStackKey">
       <selector xpath=".//*"/>
       <field xpath="if:ifStackHigherLayer/@value"/>
       <field xpath="if:ifStackLowerLayer/@value"/>
      </key>
     </element>

     <element name="ifStackEntry">
      <complexType>
       <complexContent>


   Adwankar              Expires January 19, 2005              [Page 62]


   Internet Draft          NetConf Data Model              July 19, 2004

        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifStackTable"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadCreateAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description"
                   fixed="Information on a particular relationship
                   between two sub-layers, specifying that one
                   sub-layer runs on 'top' of the other sub-layer.
                   Each sub-layer corresponds to a conceptual row in
                   the ifTable." minOccurs="0"/>
          <element ref="if:ifStackHigherLayer"/>
          <element ref="if:ifStackLowerLayer"/>
          <element ref="if:ifStackStatus"/>
         </sequence>
         <attribute name="value" type="nc:Container" fixed="entry"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifStackHigherLayer">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifStackEntry"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:NotAccessible"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description"
                   fixed="The value of ifIndex corresponding to the
                   higher sub-layer of the relationship, i.e., the
                   sub-layer which runs on 'top' of the sub-layer
                   identified by the corresponding instance of
                   ifStackLowerLayer. If there is no higher sub-layer
                   (below the internetwork layer), then this object has
                   the value 0." minOccurs="0"/>
         </sequence>
         <attribute name="value" type="unsignedInt" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifStackLowerLayer">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>


   Adwankar              Expires January 19, 2005              [Page 63]


   Internet Draft          NetConf Data Model              July 19, 2004

          <element name="parent" type="string" fixed="ifStackEntry"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:NotAccessible"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description"
                   fixed="The value of ifIndex corresponding to the
                   lower sub-layer of the relationship, i.e., the
                   sub-layer which runs 'below' the sub-layer
                   identified by the corresponding instance of
                   ifStackHigherLayer.  If there is no lower sub-layer,
                   then this object has the value 0." minOccurs="0"/>
         </sequence>
         <attribute name="value" type="unsignedInt" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifStackStatus">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifStackEntry"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadWriteAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description"
                   fixed="The status of the relationship between two
                   sub-layers. Changing the value of this object from
                   'active' to 'notInService' or 'destroy' will likely
                   have consequences up and down the interface stack.
                   Thus, write access to this object is likely to be
                   inappropriate for some types of interfaces, and many
                   implementations will choose not to support
                   write-access for any type of interface."
                   minOccurs="0"/>
         </sequence>
         <attribute name="value" type="nc:RowStatus" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifStackLastChange">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifObjects"
                   minOccurs="0"/>


   Adwankar              Expires January 19, 2005              [Page 64]


   Internet Draft          NetConf Data Model              July 19, 2004

          <element name="maxAccess" type="nc:ReadAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description"
                   fixed="The value of sysUpTime at the time of the
                   last change of the (whole) interface stack. A change
                   of the interface stack is defined to be any
                   creation, deletion, or change in value of any
                   instance of ifStackStatus.  If the interface stack
                   has been unchanged since the last re-initialization
                   of the local network management subsystem, then this
                   object contains a zero value." minOccurs="0"/>
         </sequence>
         <attribute name="value" type="duration" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <!-- Generic Receive Address Table -->
     <element name="ifRcvAddressTable">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string" fixed="ifObjects"
                   minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadWriteAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description"
                   fixed="This table contains an entry for each address
                   (broadcast, multicast, or uni-cast) for which the
                   system will receive packets/frames on a particular
                   interface, except as follows:
                   - for an interface operating in promiscuous mode,
                   entries are only required for those addresses for
                   which the system would receive frames were it not
                   operating in promiscuous mode.
                   - for 802.5 functional addresses, only one entry is
                   required, for the address which has the functional
                   address bit ANDed with the bit mask of all
                   functional addresses for which the interface will
                   accept frames. A system is normally able to use any
                   unicast address which corresponds to an entry in
                   this table as a source address." minOccurs="0"/>
          <element ref="if:ifRcvAddressEntry" minOccurs="0"
                   maxOccurs="unbounded"/>
         </sequence>
         <attribute name="value" type="nc:Container" fixed="table"/>
        </extension>
       </complexContent>
      </complexType>


   Adwankar              Expires January 19, 2005              [Page 65]


   Internet Draft          NetConf Data Model              July 19, 2004

      <key name="ifRcvAddressKey">
        <selector xpath=".//*"/>
        <field xpath="if:ifIndex/@value"/>
        <field xpath="if:ifRcvAddressEntry/if:ifRcvAddressAddress/
                      @value"/>
      </key>
     </element>

     <element name="ifRcvAddressEntry">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string"
                   fixed="ifRcvAddressTable" minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadCreateAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description"
                   fixed="A list of objects identifying an address for
                   which the system will accept packets/frames on the
                   particular interface identified by the index value
                   ifIndex." minOccurs="0"/>
          <element ref="if:ifRcvAddressAddress"/>
          <element ref="if:ifRcvAddressStatus"/>
          <element ref="if:ifRcvAddressType"/>
         </sequence>
         <attribute name="value" type="nc:Container" fixed="entry"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifRcvAddressAddress">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string"
                   fixed="ifRcvAddressEntry" minOccurs="0"/>
          <element name="maxAccess" type="nc:NotAccessible"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description"
                   fixed="An address for which the system will accept
                   packets/frames on this entry's interface."
                   minOccurs="0"/>
         </sequence>
         <attribute name="value" type="nc:PhysAddress" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>


   Adwankar              Expires January 19, 2005              [Page 66]


   Internet Draft          NetConf Data Model              July 19, 2004


     <element name="ifRcvAddressStatus">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string"
                   fixed="ifRcvAddressEntry" minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadWriteAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description"
                   fixed="This object is used to create and delete rows
                   in the ifRcvAddressTable." minOccurs="0"/>
         </sequence>
         <attribute name="value" type="nc:RowStatus" use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <element name="ifRcvAddressType">
      <complexType>
       <complexContent>
        <extension base="nc:NodeType">
         <sequence>
          <element name="parent" type="string"
                   fixed="ifRcvAddressEntry" minOccurs="0"/>
          <element name="maxAccess" type="nc:ReadWriteAccess"
                   minOccurs="0"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description"
                   fixed="This object has the value nonVolatile(3) for
                   those entries in the table which are valid and will
                   not be deleted by the next restart of the managed
                   system.  Entries having the value volatile(2) are
                   valid and exist, but have not been saved, so that
                   will not exist after the next restart of the managed
                   system.  Entries having the value other(1) are valid
                   and exist but are not classified as to whether they
                   will continue to exist after the next restart."
                   minOccurs="0"/>
         </sequence>
         <attribute name="value" type="nc:AddressStatus"
                    use="required"/>
        </extension>
       </complexContent>
      </complexType>
     </element>

     <group name="ifGeneralInformationGroup">
      <sequence>
       <element ref="if:ifIndex"/>


   Adwankar              Expires January 19, 2005              [Page 67]


   Internet Draft          NetConf Data Model              July 19, 2004

       <element ref="if:ifDescr"/>
       <element ref="if:ifType"/>
       <element ref="if:ifSpeed"/>
       <element ref="if:ifPhysAddress"/>
       <element ref="if:ifAdminStatus"/>
       <element ref="if:ifOperStatus"/>
       <element ref="if:ifLastChange"/>
       <element ref="if:ifLinkUpDownTrapEnable"/>
       <element ref="if:ifConnectorPresent"/>
       <element ref="if:ifHighSpeed"/>
       <element ref="if:ifName"/>
       <element ref="if:ifNumber"/>
       <element ref="if:ifAlias"/>
       <element ref="if:ifTableLastChange"/>
      </sequence>
     </group>

     <complexType name="ifGroup">
      <sequence>
       <group ref="if:ifGeneralInformationGroup"/>
       <element name="mandatory" type="boolean" fixed="true"/>
       <element name="description" type="nc:Description"
                fixed="A collection of objects providing information
                applicable to all network interfaces."/>
      </sequence>
     </complexType>

     <element name="schemaCompliance">
      <complexType>
       <complexContent>
        <extension base="nc:Compliance">
         <sequence>
          <element name="complianceGroup" type="if:ifGroup"/>
          <element name="status" type="nc:Status" fixed="current"
                   minOccurs="0"/>
          <element name="description" type="nc:Description"
                   fixed="The compliance statement for NetConf entities
                   which have network interfaces." minOccurs="0"/>
         </sequence>
        </extension>
       </complexContent>
      </complexType>
     </element>
   </schema>













   Adwankar              Expires January 19, 2005              [Page 68]


   Internet Draft          NetConf Data Model              July 19, 2004


























"Copyright (C) The Internet Society (year).  This document is subject
to the rights, licenses and restrictions contained in BCP 78, and
except as set forth therein, the authors retain all their rights."

"This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE."





















   Adwankar              Expires January 19, 2005              [Page 69]


Html markup produced by rfcmarkup 1.123, available from https://tools.ietf.org/tools/rfcmarkup/