<?xml version='1.0' ?>
<?rfc toc="yes"?>
<?rfc symrefs="yes"?>
<rfc docName="draft-liu-lsr-p2poverlan-01" ipr="trust200902" category="info">
	<front>
		<title abbrev='IfStackTable for P2P interface'>Interface Stack Table Definition 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 month="June" year="2021"/>
		<area>General</area>
		<keyword>RFC</keyword>
		<keyword>Internet-Draft</keyword>
		<keyword>XML</keyword>
		<keyword>Extensible Markup Language</keyword>
		<abstract>
			<t>The point-to-point circuit type is one of the mainly used circuit types in link state routing protocol.
				 It is important to identify the correct circuit type when forming adjacencies, flooding 
         link state database packets, and monitor the link state.
         This document defines point-to-point interface type and relevant stack tables 
         to provide benefit for operation, maintenance and statistics.
			</t>
		</abstract>
	</front>





	<middle>
		<section title="Introduction">
      <t>Point-to-point is the predominant circuit type
         used by link state routing protocols such as IS-IS <xref target="RFC1195"/> and OSPF 
         <xref target="RFC2328"/>
         <xref target="RFC5340"/>.
         Compare with broadcast interface, point-to-point interface is used differently when establish neighbor adjacencies, flood link state information, representing the topology, etc. 
      </t>
      <t>To simplify configuration and operation, it is helpful
      	 To represent the fact that an interface is to be considered
      	 a point-to-point interface explicitly in the interface stack. This
      	 enables, for example, routing protocols to automatically
      	 use the correct operating mode without further configuration.
      </t>
      <t>So it is necessary to abstract P2P as special sub-type type and define relevant interface stack table. 
      	 And if no entry saying p2pOverLan layer over ethernet, the management will suffer 
      	 since lose the ability to get to the Ethernet-specific management properties (Ethernet MIB or YANG model) via many tools.
      </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"/>.
      </t>
    </section>

    <section title="Relationship to the IF-MIB and Interfaces YANG Module">
    	<t>As defined in <xref target="RFC8343"/>, 
    	   if the device implements the IF-MIB [RFC2863], each entry in the
         "/interfaces/interface" list in the operational state is typically
         mapped to one ifEntry.
    	</t>
    	<t>So P2P as sub-interface type should also fully map to one ifEntry, 
    		 meanwhile define the "higher-layer-if" and "lower-layer-if" in the YANG corresponding to 
    		 "ifStackTable" in IF-MIB to setup a complete interface stack table, then the P2P interface type 
    		 can borrow all existing items in interfaces YANG and IF-MIB to take the full advantages from 
    		 operation, statistic, etc.
    	</t>
    	<t>The "higher-layer-if" should be a network layer interface type, and the lower-layer-if should be a data link layer interface type.
    	</t>
      <figure align="center" anchor="xml_happy_1">
        <artwork align="center"><![CDATA[
   +--------------------------------------+----------------------------+
   | YANG data node in                    | IF-MIB object              |
   | /interfaces/interface                |                            |
   +--------------------------------------+----------------------------+
   | name                                 | ifName                     |
   | type                                 | ifType                     |
   | description                          | ifAlias                    |
   | admin-status                         | ifAdminStatus              |
   | oper-status                          | ifOperStatus               |
   | last-change                          | ifLastChange               |
   | if-index                             | ifIndex                    |
   | link-up-down-trap-enable             | ifLinkUpDownTrapEnable     |
   | phys-address                         | ifPhysAddress              |
   | higher-layer-if and lower-layer-if   | ifStackTable               |
   | speed                                | ifSpeed and ifHighSpeed    |
   | discontinuity-time                   | ifCounterDiscontinuityTime |
   | in-octets                            | ifHCInOctets               |
   | in-unicast-pkts                      | ifHCInUcastPkts            |
   | in-broadcast-pkts                    | ifHCInBroadcastPkts        |
   | in-multicast-pkts                    | ifHCInMulticastPkts        |
   | in-discards                          | ifInDiscards               |
   | in-errors                            | ifInErrors                 |
   | in-unknown-protos                    | ifInUnknownProtos          |
   | out-octets                           | ifHCOutOctets              |
   | out-unicast-pkts                     | ifHCOutUcastPkts           |
   | out-broadcast-pkts                   | ifHCOutBroadcastPkts       |
   | out-multicast-pkts                   | ifHCOutMulticastPkts       |
   | out-discards                         | ifOutDiscards              |
   | out-errors                           | ifOutErrors                |
   +--------------------------------------+----------------------------+
            ]]></artwork>
            <postamble>YANG Data Nodes and Related IF-MIB Objects</postamble>
      </figure>
    </section>

    <section title="Interface Stack Table for P2P Interface Type">
    	<t>P2P interface type is a kind of point-to-point circuit type.
    	   P2P interface higher layer should be network layer "ipForward" 
    	   (defined in IANA) 
    	   to run routing protocol, 
    		 P2P interface lower layer is link data layer "ethernetCsmacd" (defined in IANA).
    	</t>
    	<t>P2P interface type ifStackTable should be defined as the following example:
    	</t>
    	<figure align="center" anchor="xml_happy_2">
        <artwork align="center"><![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>
            ]]></artwork>
      </figure>
    </section>

    <section title="Security Considerations">
      <t>The interface stack table specified in this document is read-only.
      	 Read operation to this table without complete protection shouldn't have a negative
         effect on network operations.
      </t>
      <t>The interface stack table defines 
      	 to be accessed via network management protocols such
         as NETCONF [RFC6241], RESTCONF [RFC8040].  The NETCONF is over on layer
         secure transport, and the mandatory secure
         transport is Secure Shell (SSH) [RFC6242].  The lowest RESTCONF layer
         is HTTPS, and the mandatory-to-implement secure transport is TLS
         [RFC8446].
      </t>
    </section>

    <section title="IANA Considerations">
    	<t>IANA need to update the "Interface Types(ifType)" registry 
    		 (available at https://www.iana.org/assignments/smi-numbers/smi-numbers.xhtml#smi-numbers-5) with the following status types:
    	</t>
    	<figure align="center" anchor="xml_happy_5">
        <artwork align="center"><![CDATA[
+=========+==================+=======================================+
| Decimal |    Name          |             Description               |
+=========+==================+=======================================+
|  303    |  p2pOverLan      |    Point to Point over LAN interface  |
+---------+------------------+---------------------------------------+
            ]]></artwork>
      </figure>

    	<t>IANA need to update the "IANAifType-MIB" registry 
    		 (available at https://www.iana.org/assignments/ianaiftype-mib/ianaiftype-mib.xhtml) with the following status types:
    	</t>
    	      <figure align="center" anchor="xml_happy_6">
        <artwork align="center"><![CDATA[
+=========+==================+=======================================+
|  Value  |    Name          |               Description             |
+=========+==================+=======================================+
|  303    |  p2pOverLan      |  Point to Point over LAN interface    |
+---------+------------------+---------------------------------------+
            ]]></artwork>
      </figure>

    	<t>IANA need to update the "iana-if-type YANG Module" registry 
    		 (available at https://www.iana.org/assignments/iana-if-type/iana-if-type.xhtml) with the following status types:
    	</t>
    	      <figure align="center" anchor="xml_happy_7">
        <artwork align="center"><![CDATA[
                identity p2pOverLan {
                  base iana-interface-type;
                  description
                    "Point to Point over LAN interface.";
                }
            ]]></artwork>
      </figure>
    </section>
	</middle>


	<back>
		<references title="Normative references">
			<reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
				<front>
					<title>Key words for use in RFCs to Indicate Requirement Levels</title>
					<author initials="S." surname="Bradner">
						<organization/>
					</author>
					<date year="1997" month="March"/>
				</front>
				<seriesInfo name="BCP" value="14"/>
				<seriesInfo name="RFC" value="2119"/>
				<seriesInfo name="DOI" value="10.17487/RFC2119"/>
			</reference>
			<reference anchor="RFC2863" target="https://www.rfc-editor.org/info/rfc2863">
				<front>
					<title>The Interfaces Group MIB</title>
					<author initials="K." surname="McCloghrie">
						<organization/>
					</author>
					<author initials="F." surname="Kastenholz">
						<organization/>
					</author>
					<date year="2000" month="June"/>
				</front>
				<seriesInfo name="RFC" value="2863"/>
				<seriesInfo name="DOI" value="10.17487/RFC2863"/>
			</reference>

			<reference anchor="RFC5309" target="https://www.rfc-editor.org/info/rfc5309">
				<front>
					<title>Point-to-Point Operation over LAN in Link State Routing Protocols</title>
					<author initials="A." surname="Zinin">
						<organization/>
					</author>
					<author initials="N." surname="Shen">
						<organization/>
					</author>
					<date year="2008" month="October"/>
				</front>
				<seriesInfo name="RFC" value="5309"/>
				<seriesInfo name="DOI" value="10.17487/RFC5309"/>
			</reference>

			<reference anchor="RFC1195" target="https://www.rfc-editor.org/info/rfc1195">
				<front>
					<title>Use of OSI IS-IS for routing in TCP/IP and dual environments</title>
					<author initials="R." surname="Callon">
						<organization/>
					</author>
					<date year="1990" month="December"/>
				</front>
			</reference>

			<reference anchor="RFC6020" target="https://www.rfc-editor.org/info/rfc6020">
				<front>
					<title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
					<author initials="M." surname="Bjorklund">
						<organization/>
					</author>
					<date year="2010" month="October"/>
				</front>
				<seriesInfo name="RFC" value="6020"/>
				<seriesInfo name="DOI" value="10.17487/RFC6020"/>
			</reference>
			<reference anchor="RFC2328" target="https://www.rfc-editor.org/info/rfc2328">
				<front>
					<title>OSPF Version 2</title>
					<author initials="J." surname="Moy">
						<organization/>
					</author>
					<date year="1998" month="April"/>
				</front>
				<seriesInfo name="STD" value="54"/>
				<seriesInfo name="RFC" value="6242"/>
				<seriesInfo name="DOI" value="10.17487/RFC2328"/>
			</reference>
			<reference anchor="RFC6991" target="https://www.rfc-editor.org/info/rfc6991">
				<front>
					<title>Common YANG Data Types</title>
					<author initials="J." surname="Schoenwaelder">
						<organization/>
					</author>
					<date year="2011" month="June"/>
				</front>
				<seriesInfo name="RFC" value="6991"/>
				<seriesInfo name="DOI" value="10.17487/RFC6991"/>
			</reference>
			<reference anchor="RFC7950" target="https://www.rfc-editor.org/info/rfc7950">
				<front>
					<title>The YANG 1.1 Data Modeling Language</title>
					<author initials="M." surname="Bjorklund">
						<organization/>
					</author>
					<date year="2016" month="August"/>
				</front>
				<seriesInfo name="RFC" value="7950"/>
				<seriesInfo name="DOI" value="10.17487/RFC7950"/>
			</reference>
			<reference anchor="RFC5340" target="https://www.rfc-editor.org/info/rfc5340">
				<front>
					<title>OSPF for IPv6</title>
					<author initials="R." surname="Coltun">
						<organization/>
					</author>
					<author initials="D." surname="Ferguson">
						<organization/>
					</author>
					<author initials="J." surname="Moy">
						<organization/>
					</author>
					<author initials="A." surname="Lindem">
						<organization/>
					</author>
					<date year="2008" month="July"/>
				</front>
				<seriesInfo name="RFC" value="5340"/>
				<seriesInfo name="DOI" value="10.17487/RFC5340"/>
			</reference>
			<reference anchor="RFC8343" target="https://www.rfc-editor.org/info/rfc8343">
				<front>
					<title>A YANG Data Model for Interface Management</title>
					<author initials="M." surname="Bjorklund">
						<organization/>
					</author>
					<date year="2018" month="March"/>
				</front>
				<seriesInfo name="RFC" value="8343"/>
				<seriesInfo name="DOI" value="10.17487/RFC8343"/>
			</reference>
		</references>

		<references title="Informative References">
			<reference anchor="RFC7224" target="https://www.rfc-editor.org/info/rfc7224">
				<front>
					<title>IANA Interface Type YANG Module</title>
					<author initials="M." surname="Bjorklund">
						<organization/>
					</author>
					<date year="2014" month="May"/>
				</front>
				<seriesInfo name="RFC" value="7224"/>
				<seriesInfo name="DOI" value="10.17487/RFC7224"/>
			</reference>
			<reference anchor="RFC8340" target="https://www.rfc-editor.org/info/rfc8340">
				<front>
					<title>YANG Tree Diagrams</title>
					<author initials="M." surname="Bjorklund">
						<organization/>
					</author>
					<author initials="L." surname="Berger">
						<organization/>
					</author>
					<date year="2018" month="March"/>
				</front>
				<seriesInfo name="BCP" value="215"/>
				<seriesInfo name="RFC" value="8340"/>
				<seriesInfo name="DOI" value="10.17487/RFC8340"/>
			</reference>
		</references>
	</back>
</rfc>