<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>

<rfc xmlns:xi="http://www.w3.org/2001/XInclude" docName="draft-liu-lsr-p2poverlan-12"
     number="9296" ipr="trust200902" category="info" obsoletes="" updates=""  submissionType="independent" xml:lang="en" tocInclude="true" symRefs="true" version="3" sortRefs="true">
  
  <front>
    <title abbrev="IfStackTable for P2poverLAN interface">ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples</title>
    <seriesInfo name="RFC" value="9296"/>
    <author initials="D." surname="Liu" fullname="Daiying Liu">
      <organization>Ericsson</organization>
      <address>
        <postal>
          <street>No.5 Lize East Street</street>
          <code>100102</code>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>harold.liu@ericsson.com</email>
      </address>
    </author>
    <author initials="J." surname="Halpern" fullname="Joel Halpern">
      <organization>Ericsson</organization>
      <address>
        <email>joel.halpern@ericsson.com</email>
      </address>
    </author>
    <author initials="C." surname="Zhang" fullname="Congjie Zhang">
      <organization>Ericsson</organization>
      <address>
        <email>congjie.zhang@ericsson.com</email>
      </address>
    </author>
    <date year="2022" month="August"/>

    <abstract>
      <t>RFC 5309 defines the Point-to-Point (P2P) circuit type, one of the two circuit types used in the link-state routing protocols, and
				 highlights that it is important to identify the correct circuit type when forming adjacencies, flooding 
         link-state database packets, and monitoring the link state.
      </t>
      <t>
         This document provides advice about the ifStack for the P2P interface over a LAN Type
         to facilitate operational control, maintenance, and statistics. 
      </t>
    </abstract>
  </front>
  <middle>
    <section numbered="true" toc="default">
      <name>Introduction</name>
      <t><xref target="RFC5309" format="default"/> defines the Point-to-Point (P2P) circuit type and highlights that it is important to identify the correct circuit type when forming adjacencies, flooding link-state database packets, and monitoring the link state.
      </t>
      <t>
      	 To simplify configuration and operational control, it is helpful
      	 to represent the fact that an interface is to be considered
      	 a P2P interface over a LAN type explicitly in the interface stack. This
      	 enables, for example, routing protocols to automatically inherit 
      	 the correct operating mode from the interface stack without further configuration (i.e., there is no need to explicitly configure the P2P interface in routing protocols).
      </t>
      <t>It is helpful to map the P2P interface over a LAN type in the interface management stack table. If no entry specifies the lower layer of the P2P interface, then management tools lose the ability to 
      	 retrieve and measure properties specific to lower layers.
      </t>

      
<t>In standard network management protocols that make use of
  ifStackTables, the P2P interface over a LAN type is intended to be used
  solely as a means to signal that the upper-layer interface of link-data layer is a P2P interface. Thus, the upper and lower layers of P2P over a LAN type are
  expected to apply appropriate semantics.  In general, the higher layer of a P2P over a LAN type <bcp14>SHOULD</bcp14> be "ipForward" (value 142 in
   <xref target="Assignment" format="default"/>), and the lower layer of P2P over a LAN type <bcp14>SHOULD</bcp14> be any appropriate link-data layer of "ipForward".
      </t>
      <t>The assignment of 303 as the value for the p2pOverLan ifType was made by Expert Review (see <xref target="Assignment" format="default"/> and <xref target="RFC8126" format="default"/>).
The purpose of this document is to serve as a reference for ifType 303 by suggesting how the ifStackTable for the P2P interface over a LAN type is to be used and providing examples.
      </t>
      <t>It should be noted that this document reflects the operating model used on some routers. Other routers that use different models may not represent a P2P as a separate interface.
      </t>
    </section>
    <section numbered="true" toc="default">
      <name>Requirements Language</name>
        <t>
    The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
    NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
    "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
    described in BCP&nbsp;14 <xref target="RFC2119"/> <xref target="RFC8174"/> 
    when, and only when, they appear in all capitals, as shown here.
        </t>
    </section>
    <section anchor="sec3" numbered="true" toc="default">
      <name>Interface Stack Table for P2P Interface Type</name>
      <section anchor="sec3_1" numbered="true" toc="default">
        <name>P2P Interface: higher-layer-if and lower-layer-if</name>

	<t>If a device implements the IF-MIB <xref target="RFC2863" format="default"/>, then each entry in the "/interfaces/interface" list (see "A YANG Data Model for Interface Management" <xref target="RFC8343" format="default"/>) in the operational state is typically
mapped to one ifEntry as required in <xref target="RFC8343" format="default"/>. Therefore, the P2P interface over a LAN type should also be fully mapped to one ifEntry by defining the "ifStackTable" ("higher-layer-if" and "lower-layer-if", defined in <xref target="RFC8343" format="default"/>).
        </t>
        <t>In the ifStackTable, the higher layer of the P2P interface over a LAN type <bcp14>SHALL</bcp14> be network layer "ipForward" to enable IP routing, and the lower layer of the P2P interface over a LAN type <bcp14>SHOULD</bcp14> be any link-data layer that can be bound to "ipForward", including "ethernetCsmacd", "ieee8023adLag", "l2vlan", and so on (defined in the iana-if-type YANG module <xref target="IANA-ifTYPE" format="default"/>).
        </t>
        <t>The P2P interface over the LAN type ifStackTable can be defined along the lines of the following example, which complies with <xref target="RFC8343" format="default"/> and <xref target="RFC6991" format="default"/>.
      		In the example, "lower-layer-if" takes "ethernetCsmacd", but, in fact, "lower-layer-if" can be any other available link-data layer. See <xref target="sec7" format="default"/> for more examples.
        </t>
        <figure anchor="xml_happy_1">
          <sourcecode name="" type="" markers="true"><![CDATA[
  
            <interface>
              <name>isis_int</name>
              <type>ianaift:ipForward</type>
            </interface>
   
            <interface>
              <name>eth1</name>
              <type>ianaift:ethernetCsmacd</type>
            </interface>
   
            <interface>
              <name>p2p</name>
              <type>ianaift:p2pOverLan</type>
              <higher-layer-if>isis_int</higher-layer-if>
              <lower-layer-if>eth1</lower-layer-if>
              <enabled>false</enabled>
              <admin-status>down</admin-status>
              <oper-status>down</oper-status>
              <statistics>
                <discontinuity-time>
                  2021-04-01T03:00:00+00:00
                </discontinuity-time>
                <!-- counters now shown here -->
              </statistics>
            </interface>
  
            ]]></sourcecode>
        </figure>
      </section>
      <section anchor="sec3_2" numbered="true" toc="default">
        <name>P2P Interface Statistics</name>
        <t>Because multiple IP interfaces can be bound to one physical port, 
      		 the statistics on the physical port <bcp14>SHOULD</bcp14> be a complete set that includes statistics of all upper-layer interfaces. 
      		 Therefore, each P2P interface collects and displays traffic that has been sent to it via 
      		 higher layers or received from it via lower layers.
        </t>
      </section>

      <section anchor="sec3_3" numbered="true" toc="default">
        <name>P2P Interface Administrative State</name>
        <t>The P2P interface can be shut down independently of the underlying interface.
        </t>
        <t>If the P2P interface is administratively up, 
      		 then the "oper-status" (defined in <xref target="RFC8343" format="default"/>) of that interface <bcp14>SHALL</bcp14> fully reflect the state of the underlying interface; 
      		 if the P2P interface is administratively down, 
      		 then the "oper-status" of that interface <bcp14>SHALL</bcp14> be down. Examples can be found in <xref target="sec7" format="default"/>.
        </t>
      </section>
    </section>
    <section numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>The writable attribute "admin-status" of the p2povervlan ifType is inherited from <xref target="RFC8343" format="default"/>. 
      	 Other objects associated with the p2povervlan ifType are read-only. 
      	 With this in mind, the considerations discussed in <xref target="RFC8343" sectionFormat="of" section="7"/> otherwise apply to the p2povervlan ifType.
      </t>
    </section>
    <section numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>In the "Interface Types (ifType)" registry, value 303 is assigned 
      to p2pOverLan <xref target="Assignment" format="default"/>. As this document explains how the p2pOverLan (303) ifType is to be used, IANA has amended the reference for p2pOverLan (303) to point to this document (instead of <xref target="RFC5309" format="default"/>) and
made a similar amendment in the YANG iana-if-type module <xref target="IANA-ifTYPE" format="default"/> (originally specified in <xref target="RFC7224" format="default"/>).
      </t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2863.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5309.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7224.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8343.xml"/>
       <!-- <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8561.xml"/>-->
      </references>
      <references>
        <name>Informative References</name>

        <reference anchor="Assignment" target="https://www.iana.org/assignments/smi-numbers">
          <front>
            <title>Interface Types (ifType)</title>
            <author><organization>IANA</organization></author>
          </front>
        </reference>


        <reference anchor="IANA-ifTYPE" target=" https://www.iana.org/assignments/yang-parameters">
          <front>
            <title>YANG Module Names</title>
            <author><organization>IANA</organization></author>
          </front>
        </reference>
	
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6991.xml"/>
	<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml"/>
      </references>
    </references>
    <section anchor="sec7" numbered="true" toc="default">
      <name>Examples</name>
      
      <t>If the underlying interface is a VLAN sub-interface, the ifStackTable should be defined as:
      </t>
      <figure anchor="xml_happy_2">
        <sourcecode name="" type="" markers="true"><![CDATA[

          <interface>
            <name>isis_int</name>
            <type>ianaift:ipForward</type>
          </interface>
 
          <interface>
            <name>eth1_valn1</name>
            <type>ianaift:l2vlan</type>
          </interface>
 
          <interface>
            <name>p2p</name>
            <type>ianaift:p2pOverLan</type>
            <higher-layer-if>isis_int</higher-layer-if>
            <lower-layer-if>eth1_valn1</lower-layer-if>
            <enabled>false</enabled>
            <admin-status>down</admin-status>
            <oper-status>down</oper-status>
            <statistics>
              <discontinuity-time>
                2021-04-01T03:00:00+00:00
              </discontinuity-time>
              <!-- counters now shown here -->
            </statistics>
          </interface>

          ]]></sourcecode>
      </figure>    
      <t>If the underlying interface is Link Aggregation Group (LAG), the ifStackTable should be defined as:
      </t>
      <figure anchor="xml_happy_3">
        <sourcecode name="" type="" markers="true"><![CDATA[

          <interface>
            <name>isis_int</name>
            <type>ianaift:ipForward</type>
          </interface>
 
          <interface>
            <name>eth1_lag1</name>
            <type>ianaift:ieee8023adLag</type>
          </interface>
 
          <interface>
            <name>p2p</name>
            <type>ianaift:p2pOverLan</type>
            <higher-layer-if>isis_int</higher-layer-if>
            <lower-layer-if>eth1_lag1</lower-layer-if>
            <enabled>false</enabled>
            <admin-status>down</admin-status>
            <oper-status>down</oper-status>
            <statistics>
              <discontinuity-time>
                2021-04-01T03:00:00+00:00
              </discontinuity-time>
              <!-- counters now shown here -->
            </statistics>
          </interface>

          ]]></sourcecode>
      </figure>
      <t>If the P2P interface and underlying interface are both administratively up and the underlying interface operational status is up:
      </t>
      <figure anchor="xml_happy_4">
        <sourcecode name="" type="" markers="true"><![CDATA[

          <interface>
             <name>p2p</name>
             <type>ianaift:p2pOverLan</type>
             <higher-layer-if>isis_int</higher-layer-if>
             <lower-layer-if>eth1</lower-layer-if>
             <admin-status>up</admin-status>
             <oper-status>up</oper-status>
          </interface>

          ]]></sourcecode>
      </figure>
      <t>If the P2P interface and underlying interface are administratively up but the underlying interface operational status is down:
      </t>
      <figure anchor="xml_happy_5">
        <sourcecode name="" type="" markers="true"><![CDATA[

          <interface>
             <name>p2p</name>
             <type>ianaift:p2pOverLan</type>
             <higher-layer-if>isis_int</higher-layer-if>
             <lower-layer-if>eth1</lower-layer-if>
             <admin-status>up</admin-status>
             <oper-status>down</oper-status>
          </interface>

          ]]></sourcecode>
      </figure>
      <t>If the P2P interface is administratively down:
      </t>
      <figure anchor="xml_happy_6">
        <sourcecode name="" type="" markers="true"><![CDATA[

          <interface>
             <name>p2p</name>
             <type>ianaift:p2pOverLan</type>
             <higher-layer-if>isis_int</higher-layer-if>
             <lower-layer-if>eth1</lower-layer-if>
             <admin-status>down</admin-status>
             <oper-status>down</oper-status>
          </interface>

          ]]></sourcecode>
      </figure>
      <t>If the P2P interface is administratively up but the underlying interface is administratively down:
      </t>
      <figure anchor="xml_happy_7">
        <sourcecode name="" type="" markers="true"><![CDATA[

          <interface>
             <name>p2p</name>
             <type>ianaift:p2pOverLan</type>
             <higher-layer-if>isis_int</higher-layer-if>
             <lower-layer-if>eth1</lower-layer-if>
             <admin-status>up</admin-status>
             <oper-status>down</oper-status>
          </interface>

          ]]></sourcecode>
      </figure>
</section>

    <section anchor="sec8" numbered="false" toc="default">
      <name>Acknowledgements</name>
      <t>The authors would like to thank <contact fullname="Rob Wilton"/> for his reviews and valuable comments and suggestions.</t>
    </section>
  </back>
</rfc>
