One document matched: draft-ietf-netmod-opstate-reqs-01.xml


<?xml version='1.0'?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY rfc2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY rfc6241 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6241.xml">
<!--
<!ENTITY rfc4251 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4251.xml">
<!ENTITY rfc4252 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4252.xml">
<!ENTITY rfc4253 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4253.xml">
<!ENTITY rfc4254 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4254.xml">
<!ENTITY rfc5246 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5246.xml">
<!ENTITY rfc6020 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6020.xml">
<!ENTITY rfc6125 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6125.xml">
<!ENTITY rfc6187 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6187.xml">
<!ENTITY rfc6242 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6242.xml">
<!ENTITY rfc6335 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6335.xml">
<!ENTITY rfc6520 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6520.xml">
<!ENTITY rfc7589 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7589.xml">
-->
]>


<?rfc toc="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc linkmailto="no" ?>
<?rfc editing="no" ?>
<?rfc comments="yes" ?>
<?rfc inline="yes"?>
<?rfc rfcedstyle="yes"?>
<?rfc-ext allow-markup-in-artwork="yes" ?>
<?rfc-ext include-index="no" ?>
<!--<?rfc strict="no"?> -->

<rfc category="info"
     ipr="trust200902"
     docName="draft-ietf-netmod-opstate-reqs-01">
    <front>
        <title>NETMOD Operational State Requirements</title>
        <author initials="K.W." surname="Watsen" fullname="Kent Watsen">
            <organization>Juniper Networks</organization>
            <address>
                <email>kwatsen@juniper.net</email>
            </address>
        </author>
        <author initials="T.N." surname="Nadeau" fullname="Thomas Nadeau">
            <organization>Brocade Networks</organization>
            <address>
                <email>tnadeau@lucidvision.com</email>
            </address>
        </author>
        <date/>
        <area>Operations</area>
        <workgroup>NETMOD Working Group</workgroup>
        <keyword>opstate</keyword>
        <abstract>
            <t>This document defines requirements for servers enabling better
            visibility and control over the server's operational state.  To
            achieve this end, this document also defines terminology describing
            a conceptual model enabling the requirements to be expressed.</t>
        </abstract>
      </front>

    <middle>
      <section title="Terminology">
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL",
        "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY",
        and "OPTIONAL" in this document are to be interpreted as
        described in RFC 2119 <xref target="RFC2119"/>.</t>

        <t>The term "server" is used throughout this document to refer to what is many
        times known as the "device", "system", or "network element".  This definition is
        intended to be consistent with the term "server" defined in <xref target="RFC6241"/>,
        Section 1.1, but free of any association to a particular protocol.</t>

        <t>This document defines the following terms:
          <list style="hanging" hangIndent="4">
            <t hangText="Applied Configuration:">This data represents the configuration 
            state that the server is actually in.  That is, the configuration state which
            is currently being used by server components (e.g., control plane daemons,
            operating system kernels, line cards).
              <list style="empty">
                <t>NOTE: The server's ability to report applied configuration accurately
                may be limited in some cases, such as when the configuration
                goes through an intermediate layer without an ability to inspect the
                lower layer.</t>
              </list>
            </t>
            <t hangText="Asynchronous Configuration Operation:">A configuration request to update
            the running configuration of a server that is applied asynchronously
            with respect to the client request.  The server MUST update its intended
            configuration (see term) before replying to the client indicating
            whether the request will be processed.  This reply to the client only
            indicates whether there are any errors in the  original request.  The
            server's applied configuration state (see term) is updated after the
            configuration change has been fully effected to all impacted components
            in the server.  Once applied, there MUST be a mechanism for the client to
            determine when the request has completed processing and whether the
            intended config is now fully effective or there are any errors from
            applying the configuration change, which could be from an asynchronous
            notification or via a client operation.</t>
            <t hangText="Continue On Error:">Continue to process configuration data on
            error; error is recorded, and negative response is generated
            if any errors occur.</t>
            <t hangText="Derived State:">This data represents information which is
            generated as part of the server's own interactions.  For example,
            derived state may consist of the results of protocol interactions
            (the negotiated duplex state of an Ethernet link), statistics
            (such as message queue depth), or counters (such as packet input
            or output bytes).</t>
            <t hangText="Intended Configuration:">This data represents the configuration 
            state that the network operator intends the server to be in, and 
            that has been accepted by the server as valid configuration.</t>
            <t hangText="Operational State:">Operational State is the current state
            of the system as known to the various components of the system
            (e.g., control plane daemons, operating system kernels, line cards).
            The operational state includes both applied configuration and derived
            state.</t>
            <t hangText="Rollback On Error:">If an error condition occurs such that part
            of applying the configuration fails, the server will stop
            processing the configuration operation and restore the
            specified configuration to its complete state at the start
            of this configuration operation.</t>
            <t hangText="Synchronous Configuration Operation:">A configuration request to update
            the running configuration of a server that is applied synchronously with
            respect to the client request (i.e. a blocking call).  The server MUST fully attempt to apply 
            the configuration change to all impacted components in the server,
            updating both the server's intended and applied configuration (see terms),
            before replying to the client.  The reply to the client indicates whether there
            are any errors in the request or errors from applying the configuration
            change.</t>
          </list>
        </t>
      </section>

      <section title="Requirements" anchor="reqs">
        <t>
          <list style="numbers">
            <t>Ability to interact with both intended and applied configuration
              <list style="letters">
                <t>The ability to ask the operational components of a server
                   (e.g., line cards) for the configuration that they are currently
                   using. This is the applied configuration (see term).</t>
                <t>Applied configuration is read-only</t>
                <t>The data model for the applied configuration is the same as
                   the data model for the intended configuration (same leaves)</t>
                <t>When a configuration change for any intended configuration
                   node has been successfully applied to the server (e.g. not
                   failed, nor deferred due to absent hardware) then the
                   existence and value of the corresponding applied
                   configuration node must match the intended configuration
                   node.</t>
              </list>
            </t>
            <t>Support for both synchronous and asynchronous configuration
            operations (see terms)
              <list style="letters">
                <t>A server may support only synchronous configuration
                operations, or only asynchronous configuration operations, or
                both synchronous and asynchronous configuration operations on
                a client-specified per-operation basis.</t>
                <t>Servers that support asynchronous configuration operations MAY
                also provide a verify operation that a client can request from
                the server to return information regarding the difference
                between the intended and applied configurations.</t>
                <t>The configuration protocol MUST specify how configuration
                errors are handled.  Errors may be handled by "stop on error",
                "continue on error" or "rollback on error" semantics (see
                terms).  Support for "rollback on error" SHOULD be provided.</t>
              </list>
            </t>

            <t>Separation of the applied configuration and derived state aspects of operational state; ability to retrieve them independently and together
              <list style="letters">
                <t>Be able to retrieve only the applied configuration aspects of operational state</t>
                <t>Be able to retrieve only the derived state aspects of operational state</t>
                <t>Be able to retrieve both the applied configuration and derived state aspects of operational state together</t>
              </list>
            </t>
            <t>Ability to relate configuration with its corresponding operational state
              <list style="letters">
                <t>Ability to map intended config nodes to corresponding applied config nodes</t>
                <t>Ability to map intended config nodes to associated derived state nodes</t>
                <t>The mappings needs to be programmatically consumable</t>
              </list>
            </t>
            <t>Ability for distinct modules to leverage a common model-structure
              <list style="letters">
                <t>Focus on the IETF-defined modules, and ideally provides guidance to other SDOs</t>
                <t>Multiple domain-specific model-structure trees are okay</t>
                <t>Model-structures may be defined in multiple modules with distinct namespaces</t>
              </list>
            </t>
          </list>
        </t>
      </section>

      <section anchor="sec-con" title="Security Considerations">
        <t>None</t>
      </section>

      <section title="IANA Considerations" anchor="iana-con">
        <t>None</t>
      </section>

      <section title="Acknowledgements">
        <t>The authors would like to thank the following for contributing to this document (in alphabetic order):
Acee Lindem,
Andy Bierman,
Anees Shaikh,
Benoit Claise,
Carl Moberg,
Dan Romascanu,
Dean Bogdanovic,
Gert Grammel,
Jonathan Hansford,
Juergen Schoenwaelder,
Lou Berger,
Mahesh Jethanandani,
Martin Bjorklund,
Phil Shafer,
Randy Presuhn,
Rob Shakir,
Robert Wilton,
Sterne, Jason.</t>
      </section>

    </middle>

    <back>

      <references title="Normative References">
        &rfc2119;
      </references>
      <references title="Informative References">
        &rfc6241;
        <reference anchor="draft-openconfig-netmod-opstate-01" target="https://tools.ietf.org/html/draft-openconfig-netmod-opstate-01">
          <front>
            <title>Consistent Modeling of Operational State Data in YANG</title>
            <author initials="R.S." surname="Shakir" fullname="Rob Shakir">
              <organization>BT</organization>
            </author>
            <author initials="A.S." surname="Shaikh" fullname="Anees Shaikh">
              <organization>Google</organization>
            </author>
            <author initials="M.H." surname="Hines" fullname="Marcus Hines">
              <organization>Google</organization>
            </author>
            <date year="2015"/>
          </front>
          <seriesInfo name='Internet-Draft' value='draft-openconfig-netmod-opstate-01' />
        </reference>
        <reference anchor="draft-openconfig-netmod-model-structure-00" target="https://tools.ietf.org/html/draft-openconfig-netmod-model-structure-00">
          <front>
            <title>Operational Structure and Organization of YANG Models</title>
            <author initials="A.S." surname="Shaikh" fullname="Anees Shaikh">
              <organization>Google</organization>
            </author>
            <author initials="R.S." surname="Shakir" fullname="Rob Shakir">
              <organization>BT</organization>
            </author>
            <author initials="K.D." surname="D'Souza" fullname="Kevin D'Souza">
              <organization>AT&T</organization>
            </author>
            <author initials="L.F." surname="Fang" fullname="Luyuan Fang">
              <organization>Microsoft</organization>
            </author>
            <date year="2015"/>
          </front>
          <seriesInfo name='Internet-Draft' value='draft-openconfig-netmod-model-structure-00' />
        </reference>

      </references>

      <section title="Relation to Terms Defined in Other Drafts">
        <t>The following terms were originally defined in <xref target="RFC6241"/>, but since
        modified by the NETMOD WG:
          <list style="symbols">
            <t>continue-on-error</t>
            <t>stop-on-error</t>
            <t>rollback-on-error</t>
          </list>
        </t>
        <t>The following terms were originally defined in
        <xref target="draft-openconfig-netmod-opstate-01"/>, but since modified by the NETMOD WG:
          <list style="symbols">
            <t>Intended Configuration</t>
            <t>Applied Configuration</t>
            <t>Derived State</t>
          </list>
        </t>
      </section>
      <section title="Relation to Requirements in Other Drafts">
        <t>The requirements in this document roughly map onto the requirements listed in 
        <xref target="draft-openconfig-netmod-opstate-01"/> and
        <xref target="draft-openconfig-netmod-model-structure-00"/> as list below.  Some 
        liberty was taken to adjust the requirements based on what looked liked consensus
        from on list discussions:
          <list style="numbers">
            <t>draft-openconfig-netmod-opstate-01, Section 3</t>
            <t>draft-openconfig-netmod-opstate-01, Section 4.2</t>
            <t>draft-openconfig-netmod-opstate-01, Section 4.3</t>
            <t>draft-openconfig-netmod-opstate-01, Section 4.5</t>
            <t>draft-openconfig-netmod-model-structure-00 (no section)</t>
          </list>
        </t>
      </section>

      <section title="Open Issues">
        <t>All issues with this draft are tracked using GitHub issues.  Please see: https://github.com/netmod-wg/opstate-reqs/issues to see currently opened issues.</t>
      </section>

    </back>

</rfc>


PAFTECH AB 2003-20262026-04-24 05:38:40