Internet-Draft | IfStackTable for P2poverLAN interface | May 2022 |
Liu, et al. | Expires 23 November 2022 | [Page] |
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.¶
This document provides advice about the ifStack for the P2P interface over LAN ifType to facilitate operational control, maintenance and statistics.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
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 as "work in progress."¶
This Internet-Draft will expire on 23 November 2022.¶
Copyright (c) 2022 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
[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.¶
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).¶
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.¶
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, [Assignment]), and the P2P over LAN type lower layer SHOULD be any appropriate link data layer of "ipForward".¶
The assignment of 303, as the value for p2pOverLan ifType was made by Expert Review [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.¶
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 an ifIndex.¶
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 [RFC2119] [RFC8174].¶
If a device implements the IF-MIB [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 [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 [RFC8343]).¶
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).¶
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 Appendix A for more examples) which complies with [RFC8343] [RFC6991]:¶
<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>
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.¶
The P2P interface can be shutdown independently of the underlying interface.¶
If the P2P interface is administratively up, then the "oper-status", defined in [RFC8343], of that interface SHALL fully reflect state of the underlying interface; if the P2P interface is administratively down, then the "oper-status" of that interface SHALL be down. Examples can be found in Appendix A.¶
The writeable attribute "admin-status" of p2povervlan ifType is inherited from [RFC8343]. Other objects associated with the p2povervlan ifType are read-only. With this in mind, the considerations discussed Section 7 of [RFC8343] otherwise apply to the p2povervlan ifType.¶
In the Interface Types registry, IANA has assigned a value of 303 for p2pOverLan [Assignment] with a reference of [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 [RFC7224]) which currently points to [RFC8561], as this document explains how the ifType is to be used.¶
The authors would like to thank Rob Wilton for his reviews and valuable comments and suggestions.¶
In the case of underlying interface is VLAN sub-interface, the ifStackTable should be defined as:¶
<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>
In the case of underlying interface is LAG, the ifStackTable should be defined as:¶
<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>
In the case of P2P interface and underlying interface are both administratively up, and the underlying interface operational status is up:¶
<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>
In the case of P2P interface and underlying interface are administratively up, but the underlying interface operational status is down:¶
<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>
In the case of P2P interface is administratively down:¶
<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>
In the case of P2P interface is administratively up but underlying is administratively down:¶
<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>