<?xml version='1.0' ?>

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2863 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2863.xml">
<!ENTITY RFC5309 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5309.xml">
<!ENTITY RFC7224 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7224.xml">
<!ENTITY RFC8174 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC8343 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8343.xml">
<!ENTITY RFC8561 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8561.xml">
<!ENTITY RFC6991 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6991.xml">
]>
<?rfc toc="yes"?>
<?rfc symrefs="yes"?>
<rfc docName="draft-liu-lsr-p2poverlan-10" ipr="trust200902" category="info">
	<front>
		<title abbrev='IfStackTable for P2poverLAN interface'>Interface Stack Table Definition and Example for Point-to-Point (P2P) Interface over LAN</title>
		<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="May" day="21"/>
		<area>General</area>
		<keyword>RFC</keyword>
		<keyword>Internet-Draft</keyword>
		<keyword>XML</keyword>
		<keyword>Extensible Markup Language</keyword>
		<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 LAN ifType
         to facilitate operational control, maintenance and statistics. 
			</t>
		</abstract>
	</front>









	<middle>
		<section title="Introduction">
			<t><xref target="RFC5309"/> defines the 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 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 (No need to explicitly configure the P2P interface in routing protocols).
      </t>
      <t>It is helpful to map the P2P interface over LAN type in the interface management stack table. 
      	 If no entry specifies the P2P interface lower layer, management tools lose the ability to 
      	 retrieve and measure properties specific to lower layers.
      </t>
      <t>The P2P interface over LAN type is intended to be used solely as a means to signal in standard network management protocols 
      	 that make use of ifStackTables that the upper layer interface is P2P interface, and thus the upper and lower layers of P2P over LAN type 
      	 will be expected to apply appropriate semantics: 
      	 In general, P2P over LAN type higher layer SHOULD always be "ipForward" (Value 142,  <xref target="Assignment"/>), 
      	 and the P2P over LAN type lower layer SHOULD be any appropriate link data layer of "ipForward".
      </t>
      <t>The assignment of 303, as the value for p2pOverLan ifType was made by Expert Review <xref target="Assignment"/>.
      	 So the purpose of this document is to request IANA to add this document as a reference to ifType 303, as well as 
      	 suggest how to use ifStackTable for the P2P interface over LAN type, and provide examples.
      </t>
      <t>It should be noted that this document reflects the operating model used on some routers, others use different operating models may not represent a P2P as an ifIndex.
      </t>
    </section>
    <section title="Requirements Language">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
         "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
         document are to be interpreted as described in <xref target="RFC2119"/> <xref target="RFC8174"/>.
      </t>
    </section>



    <section anchor="sec3" title="Interface Stack Table for P2P Interface Type">
    	<section anchor="sec3_1" title="P2P Interface higher-layer-if and lower-layer-if">
      	<t>If a device implements the IF-MIB <xref target="RFC2863"/>, each entry in the
           "/interfaces/interface" list (in "Interface Management YANG") in the operational state is typically
           mapped to one ifEntry as required in <xref target="RFC8343"/>. Therefore the P2P interface over 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"/>).
      	</t>
      	<t>In ifStackTable the P2P interface over LAN type higher layer SHALL be network layer "ipForward" 
      	   to enable IP routing, 
      		 and the P2P interface over LAN type lower layer SHOULD be any link data layer that can be bound to "ipForward" 
      		 including "ethernetCsmacd", "ieee8023adLag", "l2vlan", and so on (defined in IANA).
      	</t>
      	<t>The P2P interface over LAN type ifStackTable can be defined along the lines of following example 
      		(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"/> for more examples) 
      		which complies with <xref target="RFC8343"/> <xref target="RFC6991"/>:
      	</t>
      	<figure align="center" anchor="xml_happy_1">
          <artwork align="center"><![CDATA[
            <CODE BEGINS>
  
            <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>
  
            <CODE ENDS>
              ]]></artwork>
        </figure>
      </section>


      <section anchor="sec3_2" title="P2P Interface Statistics">
      	<t>Because multiple IP interfaces can be bound to one physical port, 
      		 the statistics on the physical port SHOULD be a complete set which 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" title="P2P Interface Administrative State">
      	<t>P2P interface can be shutdown independently of the underlying interface.
      	</t>
      	<t>If P2P interface is administratively up, 
      		 then the "oper-status", defined in <xref target="RFC8343"/>, of the P2P interface SHALL fully reflect state of underlying interface; 
      		 If the P2P interface is administratively down, 
      		 the "oper-status" of the P2P interface SHALL be down. Details refer to <xref target="sec7"/>.
      	</t>
      </section>
    </section>

    <section title="Security Considerations">
      <t>The interface stack table specified in this document is read-only.
      	 Read operation to this table should not have a negative effect on network operations.
      </t>
    </section>




    <section title="IANA Considerations">
    	<t>In the Interface Types registry, IANA has assigned a value of 303 
    		 for p2pOverLan <xref target="Assignment"/> with a reference of <xref target="RFC5309"/>.
    		 IANA is requested to amend the reference for that code point to be to this document 
    		 and to make a similar amendment in the YANG iana-if-type module (originally specified in 
    		 <xref target="RFC7224"/>) which currently points to <xref target="RFC8561"/>, 
    		 as this document explains how the ifType is to be used.
    	</t>
    </section>
    <section anchor="sec8" title="Acknowledgements">
      <t>The authors would like to thank Rob Wilton for his reviews and valuable comments and suggestions.</t>
    </section>
	</middle>







	<back>
		<references title="Normative references">
      &RFC2119;
      &RFC2863;
      &RFC5309;
      &RFC7224;
      &RFC8174;
      &RFC8343;
      &RFC8561;
		</references>








		<references title="Informative References">
      <reference anchor="Assignment" target="https://www.iana.org/assignments/smi-numbers/smi-numbers.xhtml#smi-numbers-5">
				<front>
					<title>Interface Types (ifType)</title><author/><date/></front>
			</reference>
      &RFC6991;
		</references>

    <section anchor="sec7" title="Examples">
    	<t>In the case of underlying interface is VLAN sub-interface, the ifStackTable should be defined as:
    	</t>
    	<figure align="center" anchor="xml_happy_2">
        <artwork align="center"><![CDATA[
          <CODE BEGINS>

          <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>

          <CODE ENDS>
            ]]></artwork>
      </figure>

    	<t>In the case of underlying interface is LAG, the ifStackTable should be defined as:
    	</t>
    	<figure align="center" anchor="xml_happy_3">
        <artwork align="center"><![CDATA[
          <CODE BEGINS>

          <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>

          <CODE ENDS>
            ]]></artwork>
      </figure>

    	<t>In the case of P2P interface and underlying interface are both administratively up, and the underlying interface operational status is up:
    	</t>
    	<figure align="center" anchor="xml_happy_4">
        <artwork align="center"><![CDATA[
          <CODE BEGINS>

          <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>

          <CODE ENDS>
            ]]></artwork>
      </figure>

    	<t>In the case of P2P interface and underlying interface are administratively up, but the underlying interface operational status is down:
    	</t>
    	<figure align="center" anchor="xml_happy_5">
        <artwork align="center"><![CDATA[
          <CODE BEGINS>

          <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>

          <CODE ENDS>
            ]]></artwork>
      </figure>

    	<t>In the case of P2P interface is administratively down:
    	</t>
    	<figure align="center" anchor="xml_happy_6">
        <artwork align="center"><![CDATA[
          <CODE BEGINS>

          <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>

          <CODE ENDS>
            ]]></artwork>
      </figure>

    	<t>In the case of P2P interface is administratively up but underlying is administratively down:
    	</t>
    	<figure align="center" anchor="xml_happy_7">
        <artwork align="center"><![CDATA[
          <CODE BEGINS>

          <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>

          <CODE ENDS>
            ]]></artwork>
      </figure>
    </section>
	</back>


</rfc>